gpt4 book ai didi

javascript - 为什么我的 socket.io 应用程序在 Raspberry pi 上运行时会立即断开连接?

转载 作者:行者123 更新时间:2023-11-30 15:20:10 26 4
gpt4 key购买 nike

我正在尝试在可以与远程 socket.io 服务器通信的 Raspberry Pi 上构建 node.js 应用程序。

当建立新连接和关闭现有连接时,socket.io 服务器非常简单地写入控制台。

socket.io 客户端在浏览器中运行时按预期工作。

但是,当我从 Raspberry Pi 运行客户端代码时,它会连接并立即终止。这不允许我执行任何功能,例如发射或接收。

永远不会触发 on connect 事件。

var io = require('/usr/local/lib/node_modules/socket.io-client');
var serverUrl = 'http://remoteserver.com';

console.log('Connecting to ' + serverUrl);
var socket = io.connect(serverUrl);

socket.on('connect', function(socket) {
console.log('Connection established!');
console.log(socket.id);

socket.on('disconnect', function() {
console.log('Disconnected from server');
});

});

上面的代码会输出:

Connecting to: http://remoteserver.com

在服务器端,输出将显示一个新连接并最终超时关闭。

为什么客户端连接事件没有触发?我怎样才能保持这个连接,以便我最终可以将输入发送到服务器?

最佳答案

删除行:

socket.close();

来自您的代码。您正在立即关闭套接字。请记住,所有事件处理程序都是异步的。它们是非阻塞的,将在未来某个时间被调用。同时,您的其余代码运行完成,因此您的 socket.close() 在您的客户端有任何机会获得任何事件(断开连接事件除外)之前执行。

如果你想做一些事情然后关闭套接字,那么你只需要从一些事件处理程序中关闭套接字,这表明你的操作已经完成,你现在已经完成了套接字。

关于javascript - 为什么我的 socket.io 应用程序在 Raspberry pi 上运行时会立即断开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43859836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com