2014-11-24 75 views
0

所以我试图发送一个TCP消息到插入到我的计算机的设备上,IP地址为xxx.xxx.1.32通过端口9999与Socket.io。客户端成功连接到设备上运行的TCP服务器,但我似乎无法发送任何实际的消息。下面是我从设备获取输出:使用Socket.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:字段设置为保持活动状态),但它似乎永远不会发送消息,即使在首次进行连接之后。任何想法是什么问题?

回答

2

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

如果您不能或不想在您的设备上运行node.js,最好忘记Socket.IO并使用普通的WebSockets。甚至可以在可以通过普通TCP进行代理的完整计算机上实现代理服务器。

+0

嘿,谢谢你的回答。你认为这个插件可以做到这一点吗? https://github.com/kanaka/websockify – Tylerlee12 2014-11-24 03:14:30

+0

看起来像是能够完成这项工作的东西,假设你可以在平台上运行它。 – 2014-11-24 03:17:23