2013-08-04 255 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套接字。