2013-08-04 69 views
3

我正在處理來自Node.js http服務器的websocket「升級」事件 - 升級處理程序在窗體函數(req,套接字,頭)中 - 如何發送對此升級請求的響應,因爲存在沒有res對象?有沒有辦法使用套接字對象來做到這一點?如何發回標題?Node.js如何響應升級請求?

+0

爲什麼你使用http服務器的websockets?有[大量專用庫](http://stackoverflow.com/q/16392260)。是的,你應該通過套接字來回答。 – Bergi

+0

我正在爲engine.io編寫一個自定義代理。 node-http-proxy庫(Noejitsu)似乎不能與engine.io一起工作 - 我只想在這個階段獲得基本的邏輯工作。 – Jon

回答

3

你只需要調用socket.write與相應的HTTP語法沿着這些線路(從維基百科)純文本:

HTTP/1.1 101 Switching Protocols 
Upgrade: websocket 
Connection: Upgrade 
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= 
Sec-WebSocket-Protocol: chat 

使用\r\n行分隔符。在那之後,HTTP結束了,現在你只是使用裸露的TCP套接字。