所以我试图将TCP消息发送到插入我的计算机的设备,IP地址为xxx.xxx.1.32
,端口9999
和Socket.io。客户端成功连接到设备上运行的TCP服务器,但我似乎无法向其发送任何实际消息。这是我从设备获得的输出:
我的客户端代码:
<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:
字段设置为保持活动状态),但即使在首次建立连接之后也似乎永远不会发送消息。关于出了什么问题的任何想法?
答案 0 :(得分:2)
Socket.IO不做普通的TCP套接字,因为在浏览器中无法做到这一点。相反,它使用WebSockets,它需要在HTTP之上构建握手(或者一些其他基于HTTP的回退)。如果您想通过Socket.IO与自定义设备通信,则必须手动实施整个协议。
如果您不想或不想在您的设备上运行node.js,最好忘记Socket.IO并使用普通的WebSockets。甚至可以在完全成熟的计算机上实现代理服务器,该计算机可以通过纯TCP进行代理。