当前位置: 首页 > 知识库问答 >
问题:

Flask Socket.io服务器上的Node.js Socket.io客户机

双恩
2023-03-14

我试图将Node.js Socket.io客户机连接到Python/Flask Socket.io服务器。

在服务器(Raspberry Pi)上运行这个项目:pi-gpio-server。这个项目已经有了一个内置的网站,这是一个socket.io客户机来访问Raspberry PI的引脚。整个项目运作良好。

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服务器中有客户机的限制吗?有什么特别的命令要发吗?是否有可能调试连接?

共有1个答案

黎震博
2023-03-14

@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);
        });
 类似资料:
  • 我是web服务编程新手,我想使用netbeans 6在Grizzly服务器上使用Jersey创建一个restful web服务,然后创建一个客户端javascript,以便通过浏览器使用该web服务。因此,我开始了解更多关于restful web服务的知识,并在网上阅读了大量指南,然后通过阅读jersey用户指南http://jersey . Java . net/nonav/documentat

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 我正在尝试创建TLS v1。2.服务器和android客户端之间的通信。我建立了TLS v1。0连接有任何问题,但我无法获取v1。2.这是服务器代码: 虽然这是客户端代码: 客户端代码,写在java客户端运行在JRE7在我的PC上,完美的作品,我看到与getProtocol(服务器端)TLSv1.2正确的密码,由tlsv1.2支持。在Android上相同的代码使tlsv1.0连接!我真的不明白。在

  • 前面的章节介绍了所有 Redis 的重要功能组件: 数据结构、数据类型、事务、Lua 环境、事件处理、数据库、持久化, 等等, 但是我们还没有对 Redis 服务器本身做任何介绍。 不过, 服务器本身并没有多少需要介绍的新东西, 因为服务器除了维持服务器状态之外, 最重要的就是将前面介绍过的各个功能模块组合起来, 而这些功能模块在前面的章节里已经介绍过了, 所以本章将焦点放在服务器的初始化过程,

  • 问题内容: 我有一个socket.io服务器正在运行,并且有一个带有socket.io.js客户端的匹配网页。一切正常。 但是,我想知道是否有可能在另一台机器上运行一个单独的node.js应用程序,该应用程序充当客户端并连接到上述的socket.io服务器? 问题答案: 使用Socket.IO-client应该可以做到这一点:https : //github.com/LearnBoost/sock

  • 问题内容: 我正在尝试使用JmDNS在客户端服务器应用程序中启用服务发现。我完全理解服务器端的服务注册表,其代码类似于以下内容: 但是,我在弄清楚如何让我的客户端从注册的服务中检索端口号和IP地址并使用此数据打开TCP连接时遇到了麻烦。我搜索了有关如何使用JmDNS的示例,但无济于事。这里有人可以给我一些基本的例子吗?或者,如果有人在JmDNS上有指向良好资源/教程的链接,可以请他们提供吗? 注意