繁体   English   中英

通过Websockets在Nodejs和Python之间进行通信

[英]Communicate Between Nodejs and Python via Websockets

我正在尝试通过websockets将数据从python发送到nodejs。

JS:

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

server.listen(3000, () => console.log('running on 3000'));

io.sockets.on('connection', function(socket) {
    io.sockets.on('msg', function(data) {
        console.log(data);
    });
});

蟒蛇:

import asyncio
import websockets

async def sendData(uri, data):
    // FAILS ON THE FOLLOWING LINE:
    async with websockets.connect(uri) as websocket:
        await websocket.send(json.dumps(data))

def main():
    text = "sample data"
    asyncio.get_event_loop().run_until_complete(
        sendData("ws://localhost:3000", {"msg": text})
    )

main()

我收到“格式错误的HTTP消息”错误(websockets.exceptions.InvalidMessage: Malformed HTTP message)我担心python websockets可能无法与socket.io接口。 思考?

socket.io服务器只能与socket.io客户端通信。 它无法与普通的webSocket客户端通信。

Socket.io在webSocket之上添加了自己的数据格式和连接方案,并且它的服务器期望数据格式和连接方案在那里以便甚至允许初始连接。

因此,您无法使用webSocket客户端连接到socket.io服务器。

您可以选择获取Python的socket.io客户端库或将服务器更改为普通的webSocket服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM