2014-07-02 83 views
1

我打算開發JavaScript客戶端應用程序,該應用程序將使用websocket連接到Java服務器。服務器應處理許多連接的客戶端 經過一番閱讀後,我發現了websocket單線程。如果我想運行一段時間可以阻止所有事情的數據庫查詢,這並不好。爲每個連接的客戶端分離的websocket

我在想的是爲每個JavaScript客戶端打開分離的websocket。一個套接字正在偵聽新的連接,並且建立連接時會創建一些唯一的ID。之後,打開新的websocket並使用偵聽器套接字將ID發送到客戶端。當客戶端收到id時,關閉第一個套接字並連接到新套接字。

您認爲什麼是好的解決方案?也許我錯過了什麼?

+0

沒有答案,只是一個想法,你有沒有考慮過Node.js?我知道JavaScript,但你有像Sails(http://sailsjs.org/#!)這樣的東西,它們使用websockets以REST方式進行CRUD操作。所有隻是通過新的的風帆。 –

+0

Websockets既不是單一的也不是多線程的,它們只是一個協議。它們的實現受線程限制的影響。如果您的Java Websocket實現只能從單個線程使用,然後轉到另一個實現。 – Matthias247

回答

-2

您應該使用服務器上的NodeJS來處理套接字I/O。您可以通過您的JavaScript客戶端應用程序連接到它,然後調用基於Java的API。 NodeJS是非阻塞的(異步),您應該能夠利用現有的JavaScript腳本技能來快速構建Node應用程序。您甚至可以使用完整的MEAN堆棧來構建客戶端/服務器應用程序。 http://meanjs.org/http://mean.io/#!/是兩個最受歡迎的地方。

0

您可以使用Akka來管理所有的併發和線程管理。或者你可以使用已經建立在Akka上的Play Framework,並且很好地支持WebSocket。使用Play可以在服務器端選擇Java和Scala。

相關問題