簡體   English   中英

如何從 Python 客戶端設置到 NodeJS websocket 的 SocketIO 連接?

[英]How to setup SocketIO connection to NodeJS websocket from Python client?

我有一個運行 socketio 的簡單 nodejs 服務器,我可以從 HTML 與客戶端進行兩種方式的通信。 現在我也在嘗試從 Python 腳本連接到同一個 nodejs websocket,但沒有連接。

簡化的 Node JS 網絡服務器:

var http = require('http').createServer(handler);
var fs = require('fs');
var io = require('socket.io')(http)
http.listen(8080);

function handler (req, res) {
  fs.readFile(__dirname + '/public/index.html', function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}

io.sockets.on('connection', function (socket) {
  setInterval(() => {
    socket.emit('temp', 'tempfromserver')
  }, 1000)
});

想用websocket連接nodejs的Python腳本:

import socketio
sio = socketio.Client();
sio.connect('http://localhost:8080')

@sio.event
def message(data):
    print('received message')
def connect():
    print('socketio connected')

是否可以通過 socketio 將 websocket 連接到 nodejs 服務器? 如果是這樣,我做錯了什么?

最終目標是從樹莓派上的 python 腳本收集傳感器數據並發送到 nodejs 服務器,后者又將其保存到 DB 並發送到 HTMl 客戶端。 也許有更好的設置來做到這一點。

我相信我問過類似的問題並得到了答案。 我的設置有點不同,使用了 web-socket,但它至少允許你在 Node JS 和 Python 之間進行連接,然后也許你可以從那里構建, 使用 Socket IO 和 aiohttp 在節點 JS 和蟒蛇 該設置最初也基於節點 JS 端的 html 腳本,因此這也有助於將其與您的設置進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM