2014-11-24 81 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