【问题标题】:Node.js Socket.io client on Flask socket.IO serverFlask socket.IO 服务器上的 Node.js Socket.io 客户端
【发布时间】:2020-04-07 15:04:07
【问题描述】:

我正在尝试将 Node.js Socket.IO 客户端连接到 Python/Flask Socket.IO 服务器。

在服务器 (Raspberry Pi) 上运行此项目:Pi-GPIO-Server。这个项目已经有一个内置的网站,它是一个 socket.io 客户端,用于访问 Raspberry Pi 的引脚。 整个项目运行良好。

现在我想从 Node.JS 客户端访问 socket.io 连接。

在服务器端,我已将服务器的 IP 和端口更新为:

if __name__ == '__main__':
    socketio.run(app, host="192.168.0.8", port=5000)

在客户端,我的实现是(如项目文档中所述)

var io = require('socket.io-client');
var socket = io.connect('http://192.168.0.8:5000', {path: '/', transports: ['websocket']});

socket.on( 'connect', (socket) => {
    console.log('Connected: ');
    console.log(socket);
});

socket.on( 'pins:list', (list) => {
    console.log('List of Pins: ');
    console.log(list);
});

任何想法,为什么我无法建立连接? Flask 服务器中的客户端是否有限制?有什么特殊的命令要发送吗? 是否可以调试连接?

【问题讨论】:

    标签: node.js flask socket.io


    【解决方案1】:

    @Christoph 请使用下面的代码,您应该能够连接...我有 Flash 服务器正在运行,Nodejs 作为客户端,它对我来说工作正常!!! 在我的情况下,我在同一台机器上同时运行服务器和客户端,所以我使用 localhost 代替 IP 地址

    const socket = require('socket.io-client')('http://192.168.0.8:5000', {
                reconnection: true,
                reconnectionDelay: 10000
              });
        
            socket.on('connect', (data) => {
                console.log('Connected to Socket');
            });
            
            socket.on('event_name', (data) => {
                console.log("-----------------received event data from python flask srver");
            });
        
            //either 'io server disconnect' or 'io client disconnect'
            socket.on('disconnect', (reason) => {
                console.log("client disconnected");
                if (reason === 'io server disconnect') {
                  // the disconnection was initiated by the server, you need to reconnect manually
                  console.log("server disconnected the client, trying to reconnect");
                  socket.connect();
                }else{
                    console.log("trying to reconnect agan with server");
                }
                // else the socket will automatically try to reconnect
              });
        
            socket.on('error', (error) => {
                console.log(error);
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 2013-10-30
      • 2019-03-31
      • 2016-04-23
      • 2021-11-18
      • 2016-07-13
      • 1970-01-01
      • 2015-10-21
      相关资源
      最近更新 更多