javascript - 如何使用套接字 IO 在 Python 客户端和 NodeJS 服务器之间进行通信?

标签 javascript python node.js socket.io

我正在尝试使用 Socket IO 在 NodeJS 服务器和 Python 客户端进程之间进行通信。首先,我想将输入消息从 Python 进程发送到 NodeJs 进程,它可以控制台记录消息。

我遵循了 https://pypi.org/project/socketIO-client/ 中的示例代码.

在我的 app.js(nodejs 文件)中:

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);
    });
});

在 python 脚本中(在我输入数据后死掉):

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)

问题: 当我尝试执行我的 python 代码时,我在输入数据后收到此错误

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'

我的脚本(NodeJS 和 Python)需要修改什么?

最佳答案

现在我找到问题所在了。本库https://pypi.org/project/socketIO-client/ .不再与 socketIO 2.0 兼容。为了让它工作,我只使用 https://pypi.org/project/socketIO-client-nexus/反而。它们的用法基本相同。我只是从 socketIO_client 更改为 socketIO_client_nexus,它就像一个魅力。

关于javascript - 如何使用套接字 IO 在 Python 客户端和 NodeJS 服务器之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50832964/

相关文章:

node.js - 从 AWS Lambda Node.JS 流式传输并压缩到 S3

javascript - 在 React Native 的其他 .tsx 组件中使用 .tsx 组件

javascript - 如何更改数组中对象的值?

python - 如何处理图像分类的可变图像尺寸?

python - 如何查找字符串中某个字符所有出现的索引?

mongodb - Mongoose:填充填充字段

javascript - JQuery attr ('class' )未按预期在 Mozilla 中获取类名

javascript - 停止将 props 传递给带有样式组件的子组件

python - 错误 : command 'gcc' failed with exit status 1 on CentOS

node.js - 在 Firebase 函数和 React 之间共享代码