से socket.io node.js सर्वर को भेजने के लिए संदेश स्वरूपण करना मैं सर्वर पर एक कस्टम ईवेंट भेजकर, Socket.io 0.7 का उपयोग कर एक पाइथन क्लाइंट को Node.js सर्वर से बात करने का प्रयास कर रहा हूं।python क्लाइंट
सॉकेट.ओ संदर्भ के आधार पर मुझे GitHub पर और WebSocket Python library पर मिला है।
यहाँ मेरी कोड अब तक है:
नोड सर्वर
io.sockets.on('connection', function (socket) {
socket.on('newimg', function(data) {
console.log(data);
});
});
अजगर ग्राहक
def handshake(host, port):
u = urlopen("http://%s:%d/socket.io/1/" % (host, port))
if u.getcode() == 200:
response = u.readline()
(sid, hbtimeout, ctimeout, supported) = response.split(":")
supportedlist = supported.split(",")
if "websocket" in supportedlist:
return (sid, hbtimeout, ctimeout)
else:
raise TransportException()
else:
raise InvalidResponseException()
try:
(sid, hbtimeout, ctimeout) = handshake(HOSTNAME, PORT) #handshaking according to socket.io spec.
Except Exception as e:
print e
sys.exit(1)
ws = websocket.create_connection("ws://%s:%d/socket.io/1/websocket/%s" % (HOSTNAME, PORT, sid))
print ws.recv()
ws.send("2::")
ws.send("5:1::{'name':'newimg', 'args':'bla'}")
print ws.recv()
print "Closing connection"
ws.close()
नोड सांत्वना उत्पादन
debug - client authorized
info - handshake authorized 12738935571241622933
debug - setting request GET /socket.io/1/websocket/12738935571241622933
debug - set heartbeat interval for client 12738935571241622933
debug - client authorized for
debug - websocket writing 1::
debug - websocket received data packet 2::
debug - got heartbeat packet
debug - websocket received data packet 5:1::{'name':'newimg', 'args':'bla'}
debug - acknowledging packet automatically
debug - websocket writing 6:::1
info - transport end
debug - set close timeout for client 12738935571241622933
debug - cleared close timeout for client 12738935571241622933
debug - cleared heartbeat interval for client 12738935571241622933
debug - discarding transport
अजगर सांत्वना उत्पादन
Done
1::
6:::1
Closing connection
अब यह सर्वर एसीके साथ जवाब के बावजूद, सॉकेट ईवेंट को ट्रिगर नहीं किया जा रहा है लगता है। तो संदेश सही ढंग से प्राप्त किया जा रहा है, लेकिन मुझे लगता है कि, किसी घटना को ट्रिगर करने के लिए socket.io के लिए ठीक से प्रारूपित नहीं किया गया है।
मुझे नहीं लगता था तैयार जरूरी हो गया था, फिर भी Archie1986 इस के लिए अपने प्रतिक्रिया पर असहमत लगता है: Socket.IO Client Library in Python
क्या मैं गलत यहाँ क्या कर रही हो सकता है?
हल हुआ। जैसे ही मुझे ऐसा करने की अनुमति है, मैं अपना उत्तर स्वीकार करूंगा। JSON के लिए डबल कोट्स की बजाय समस्या एकल का उपयोग करने में थी। – rod