javascript - 使用 Socket.io 发送 TCP 消息时出现问题

标签 javascript sockets tcp socket.io

因此,我尝试使用 Socket 通过端口 9999 向插入我的计算机、IP 地址为 xxx.xxx.1.32 的设备发送 TCP 消息.io。客户端成功连接到设备上运行的 TCP 服务器,但我似乎无法向其发送任何实际消息。这是我从设备获得的输出:

enter image description here

还有我的客户端代码:

<script src = "https://cdn.socket.io/socket.io-1.2.1.js"></script>
<script>
    var socket = io('http://xxx.xxx.1.32:9999');
    socket.on('connect', function() {
        socket.send('GPIO,00,0');
        socket.emit('GPIO,00,0');

        socket.on('message', function (msg) {
                alert(msg);
        });
    });
</script>

它定期接收第一张图片中详细说明的相同消息(这是有道理的,因为 Connection: 字段设置为保持事件状态),但它似乎从未发送消息,即使在第一次发送消息之后也是如此连接。关于出了什么问题有什么想法吗?

最佳答案

Socket.IO 不执行普通 TCP 套接字,因为这在浏览器中是不可能执行的。相反,它使用 WebSocket,需要在 HTTP 之上构建握手(或者其他一些基于 HTTP 的回退)。如果您想使用 Socket.IO 与您的自定义设备通信,您必须手动实现整个协议(protocol)。

如果你不能或不想在你的设备上运行node.js,最好忘记Socket.IO,只使用普通的WebSockets。或者甚至在一台成熟的计算机上实现一个代理服务器,可以通过普通 TCP 代理事物。

关于javascript - 使用 Socket.io 发送 TCP 消息时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27096910/

相关文章:

c++ - 使用Boost ASIO处理无套接字的TCP

java - 在 Java 中,是否存在可与 Python 的 socketserver 媲美的东西?

javascript - 如何检测使用 window.open() 打开的窗口关闭事件

C# 套接字 - 识别同一台计算机

c++ - C/C++中的并发UDP连接限制

sockets - 通过 TCP/IP 传输浮点值和数据损坏

javascript - JS组件可以继承CSS样式吗?

javascript - 动态客户关系管理 2013 : Setting default values in a form from an entity

javascript - 通过单击复选框启动 smarty 函数

php - 响应XML包含 “2000 ”和 “20a0”字符