我想使用Socket.IO來允許我的Node.JS應用程序與Python後端進行通信。我希望Node.JS充當客戶端和Python充當服務器,所以除了gevent-socketio python模塊之外,我還使用了socket.io-client Node.JS模塊。node.js socket.io客戶端+ python socketio
https://github.com/LearnBoost/socket.io-client https://github.com/abourget/gevent-socketio
這裏是我的Python服務器:
#!/usr/bin/env python
from socketio.server import SocketIOServer
from socketio.namespace import BaseNamespace
class MyNamespace(BaseNamespace):
def on_foobar(self,data):
print 'received method for foobar'
print data
server = SocketIOServer(('localhost', 1234),resource=MyNamespace,policy_server=False)
print 'SocketIO server listening...'
server.serve_forever()
,這裏是我的Node.js服務器(作爲客戶端):
#!/usr/bin/env node
var io = require('socket.io-client');
var PySocket = io.connect('localhost:1234');
PySocket.emit('foobar',{'key1':'value1'});
由於某些原因,python服務器沒有看到連接。任何人都可以指出我錯過了什麼?
特殊用例= node.js和python之間的基本通信。我不需要提供.swf或任何其他類型的內容,所以我認爲我不需要框架。 – ejang
TCP/UDP有點煩人,因爲我必須跟蹤緩衝區大小等。有更簡單的套接字庫嗎? – ejang
此外,socket.io emit()函數非常有用,因爲我可以指定python可以專門響應而不必從數據中解析出特定標誌的方法。我認爲用普通套接字是不可能的,除非我在多個端口上建立連接,這很煩人 – ejang