2

I am trying to make communication between NodeJS server and Python client process with Socket IO.To get started, I want to send input message from Python process to NodeJs Process, and it can console.log the message.

I followed sample code in https://pypi.org/project/socketIO-client/.

In my app.js (nodejs file):

var express        = require("express");
var app            = express();
var server         = require("http").Server(app);
var io             = require('socket.io')(server);
server.listen(3000,()=>{
    console.log("Succesful");
});
io.on('connection',function(socket){
    //data is the message I wish to receive from python
    socket.on('news',(data)=>{  
    console.log(data);
    });
});

In python script(which dies after I input my data):

from socketIO_client import SocketIO,LoggingNamespace
import logging

while True:
    data = input("Enter your test data here:")
    with SocketIO('localhost', 3000, LoggingNamespace) as socketIO:
        socketIO.emit('news',{data : data})
        socketIO.wait(seconds=1)

The problem: When I try to execute my python code, I get this error after input my data

File "/home/anhtumai/.local/lib/python2.7/site- 
packages/socketIO_client/__init__.py", line 353, in __init__
resource, hurry_interval_in_seconds, **kw)
File "/home/anhtumai/.local/lib/python2.7/site- 
packages/socketIO_client/__init__.py", line 54, in __init__
self._transport
File "/home/anhtumai/.local/lib/python2.7/site- 
packages/socketIO_client/__init__.py", line 62, in _transport
self._engineIO_session = self._get_engineIO_session()
File "/home/anhtumai/.local/lib/python2.7/site- 
packages/socketIO_client/__init__.py", line 76, in 
_get_engineIO_session
transport.recv_packet())
StopIteration'

What do I need to modify in my scripts(both NodeJS and Python)?

1 Answer 1

1

Now I found what the problem is . This library https://pypi.org/project/socketIO-client/. is no longer compatible with socketIO 2.0 . To make it work, I just use https://pypi.org/project/socketIO-client-nexus/ instead. Their usage is basically the same. I just change from socketIO_client with socketIO_client_nexus and it works like a charm.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.