[英]How to run HTTP server, UDP Server and WebSocket Server from a single NodeJS app?
由於NodeJS是單線程運行時平台,因此如何從單個NodeJS應用程序內並行運行以下服務器:
我當時正在考慮通過使用RxJS實現上述目標,但是我想聽聽社區中有關他們的解決方案/經驗的信息。
Node.js不是單線程的。 開發人員只能訪問線程。 但實際上,node.js是多線程的。
專門針對您的問題,您可以在同一過程中啟動多個服務器。 Socket.io入門示例顯示了使用http服務器運行websockets。 UDP也可以完成相同的操作。
希望能有所幫助。
首先,您可以在node.js進程中擁有任意數量的偵聽服務器。 只要您在處理程序中編寫適當的異步代碼並且沒有運行任何占用CPU的算法,就可以了。
其次,您的webSocket和http服務器可以是與webSocket設計工作方式完全相同的服務器進程。
然后,您的UDP偵聽器只需位於與Web服務器不同的端口即可。
node.js的單線程方面僅適用於Javascript。 您可以運行多個服務器監聽器。 如果在不同的服務器上同時出現兩個請求,則在另一個請求稍早到達的一個請求將調用其處理程序,而一個稍晚到達的請求將排隊,直到第一個處理程序完成或在等待時返回異步操作本身。 這樣,單線程的node.js可以處理許多請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.