今天我剛剛開始使用Node.js,並認爲我會從我認爲的簡單腳本開始:通過套接字連接到服務器,以及發送一些數據,並接收回來。我正在創建一個命令行實用程序。瀏覽器中什麼都沒有。Node.js:使用套接字連接到服務器
一個服務器的例子可能是memcached,beanstalkd等等。看起來net模塊是這個工作的正確工具,但是我仍然對Node.js的處理方式有些模糊。一些幫助將不勝感激。
更新#1
讓我看看,如果我能打破這在爲一對夫婦的小問題。我甚至不喜歡問這樣的問題,但Node.js文檔非常稀少,6個月前編寫的大多數文檔已經過時。 1)所以我可以使用net.stream.write()發送數據到遠程服務器,但我不知道如何得到迴應。我什至不知道如何測試write()完成時的時間,因爲它不需要回調。
2)關於整個event.emit事情如何工作的一些線索會很棒。我認爲這是我在這些事情中失蹤的關鍵石頭。
更新#2
這裏就是我仍在努力實現一個客戶端程序混亂。讓我示意一個典型的發送請求=>獲取響應系統:
1)我將回調函數綁定到net模塊以獲取響應和其他事件,其中包括必要的綁定以從服務器獲取響應。
2)我使用stream.write()向服務器發送請求。
3)我什麼都不做,因爲我綁定的「數據」事件會從服務器得到響應。
這裏的事情變得棘手。假設我在調用綁定的「data」事件之前調用stream.write()兩次。現在我有一個問題。當「數據」事件確實發生時,我如何知道這是2個請求中的哪一個?我保證答覆會按照請求的順序發生?如果回覆的順序不同,會怎麼樣?
沒有多少時間ATM,但淨。 http://nodejs.org/api.html時鐘在側欄的'net.Server'上。你有它。一切都基於事件,你必須監聽流的'data'事件。這個例子實際上更像是一個基本的回顯服務器。如果你願意,我可以在以後爲你做更多的例子。 – 2010-10-19 07:16:59
如果您需要知道客戶端在哪個「寫入」響應中很重要,那麼您應該爲您發送/接收的數據添加一個id或類似內容。但這是網絡的一個普遍問題,與基於事件的方法無關。 – 2010-10-19 22:07:33