使用Socket.io发送TCP消息时遇到问题
问题描述:
所以我试图发送一个TCP消息到插入到我的计算机的设备上,IP地址为xxx.xxx.1.32
通过端口9999
与Socket.io。客户端成功连接到设备上运行的TCP服务器,但我似乎无法发送任何实际的消息。下面是我从设备获取输出:使用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:
字段设置为保持活动状态),但它似乎永远不会发送消息,即使在首次进行连接之后。任何想法是什么问题?
答
Socket.IO不会执行普通的TCP套接字,因为这在浏览器中是无法做到的。相反,它使用WebSockets,它需要在HTTP之上构建握手(或者其他一些基于HTTP的回退)。如果您想使用Socket.IO与自定义设备通信,则必须手动实施其整个协议。
如果您不能或不想在您的设备上运行node.js,最好忘记Socket.IO并使用普通的WebSockets。甚至可以在可以通过普通TCP进行代理的完整计算机上实现代理服务器。
嘿,谢谢你的回答。你认为这个插件可以做到这一点吗? https://github.com/kanaka/websockify – Tylerlee12 2014-11-24 03:14:30
看起来像是能够完成这项工作的东西,假设你可以在平台上运行它。 – 2014-11-24 03:17:23