2017-10-20 89 views
0

我建立它使用定製協議,用以通過插座與客戶溝通聊天服務器通信。客戶端向服務器發送特定字符串,並且服務器必須根據這些非標準消息採取適當的操作。我無法更改此協議,也無法訪問底層客戶端代碼。能否在socket.io服務器與客戶端non-socket.io

我的問題是,我可以使用Node.js的socket.io包爲服務器供電socket通訊,如果我不知道客戶是如何處理它的套接字活動?我在問,因爲,通過socket.io文檔閱讀,每次我通過套接字推動任何事件時,每個動作都與一個「事件」相關聯。

是否可以從服務器中捆綁該「事件」發出一個非常確切的消息給客戶端?我最好使用websockets包嗎?

+0

我知道這不是您詢問的特定技術,但您可能會考慮使用WebRTC解決方案 - 您甚至可以找到node.js聊天服務器教程。 – theGleep

回答

1

能一個socket.io服務器與客戶端non-socket.io通信

號公報socket.io服務器既需要用於連接發起WebSocket協議和在頂部的socket.io格式那個。所以,一個socket.io服務器只能與一個socket.io客戶端通信,反之亦然。

如果你的聊天客戶端使用自定義協議,那麼你就需要實現也講的是自定義的協議(不管它是什麼),TCP服務器。

如果你可以修改客戶端,那麼你可以修改它使用socket.io客戶端,然後您可以通過socket.io您的socket.io服務器即可獲得這些信息發送給您的聊天消息。

客戶端向服務器發送特定的字符串,並且服務器必須根據這些非標準消息採取適當的操作。我無法更改此協議,也無法訪問底層客戶端代碼。

然後,您必須實現一個服務器,該服務器根據客戶端的底層協議來說明您的自定義客戶端協議。沒有其他辦法。

我在問,因爲,通過socket.io文檔閱讀,每次我通過套接字推動任何事件'事件'與每個動作相關聯。

這是socket.io層是如何工作的。它發送一條消息和(可選)數據。這可以始終用於僅通過聲明一個通用的data消息來發送數據,然後僅在另一端收聽data消息。但是,這假定您可以修改客戶端和服務器以這種方式工作。如果你不能修改你的客戶端來使用socket.io協議,那麼你不能使用socket.io。

+0

謝謝,非常果斷的回答。你能否指出我可以用我自己的協議來實現一個純粹的基於TCP的服務器的方向?從頭看,我在想'網' –

相關問題