2011-09-17 36 views
3

我很新,所以我真的不知道我在做什麼,但我已經設置了一個node.js udp服務器。我想從客戶端(從一個網站)發送一個數據包給它,但我不知道如何在javascript中做到這一點,或者甚至可能。我沒有關注如何從node.js客戶端向服務器發送數據包,而是如何編寫網站以將數據包發送到node.js udp服務器。不知道這是否合理,但感謝您的幫助!如何發送udp到udp node.js服務器?

回答

6

您無法從瀏覽器(即JavaScript)發送UDP數據報。你可以做的是聯繫一個web服務器(例如通過AJAX或websocket)並執行一個服務器端程序(在php或node.js中)來發送UDP數據報。您可以使用服務器端編程語言的本地套接字模塊(Pythonphp,node.js)發送UDP數據報。

但是,您爲什麼首先使用UDP?你將不得不處理重新傳輸,重新排序等等,由於webbrowsers只能通過TCP通信,所以你沒有獲得UDP的任何優勢。

+0

我創建一個聊天應用程序,並希望使用UDP發送/接收消息。 – Derek

+1

那我可以用webrowser做tcp嗎? – Derek

+1

@Derek對於一個聊天應用程序,我無法想象爲什麼會使用UDP而不是TCP。缺點是:必須執行重傳,必須執行排序(大數據包也需要),甚至有可能避免擁塞。通過TCP,您可以免費獲得所有這些,並且可以更輕鬆地通過防火牆。那麼爲什麼你使用UDP而不是TCP? – phihag

6

你可能有興趣在這個教程:

http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/

它經歷瞭如何在非常精緻的細節打造node.js的聊天應用程序,他甚至展示瞭如何使用Socket.io(一瀏覽器js庫)利用網絡套接字實時,低延遲響應。

正如Phihag暗示的那樣,UDP不適合這種應用,因爲UDP並不保證您的數據包將到達目的地。在這種情況下,您肯定希望使用TCP套接字。

更多閱讀: