我想使用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