Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
玩如果请求来自nginx,框架将返回websocket连接的空头_Nginx_Playframework_Websocket_Playframework 2.1 - Fatal编程技术网

玩如果请求来自nginx,框架将返回websocket连接的空头

玩如果请求来自nginx,框架将返回websocket连接的空头,nginx,playframework,websocket,playframework-2.1,Nginx,Playframework,Websocket,Playframework 2.1,我正在使用nginx1.3.7并开始玩!Framework2.1,我需要代理我的HTTP、HTTPS和WebSocket连接到Play!通过nginx访问服务器 我依赖nginx主干的websocket代理功能,并设置了“升级”和“连接”头,以正确转发websocket连接的头(): 我确保了那出戏!在websocket初始化期间获取正确的标题。正在使用request.headers对象!没有nginx的情况下与我们的完全相同 Map( Cache-Control -> Buffer(

我正在使用nginx1.3.7并开始玩!Framework2.1,我需要代理我的HTTP、HTTPS和WebSocket连接到Play!通过nginx访问服务器

我依赖nginx主干的websocket代理功能,并设置了“升级”和“连接”头,以正确转发websocket连接的头():

我确保了那出戏!在websocket初始化期间获取正确的标题。正在使用request.headers对象!没有nginx的情况下与我们的完全相同

Map(
  Cache-Control -> Buffer(no-cache),
  Connection -> Buffer(Upgrade),
  Host -> Buffer(my-backend),
  Origin -> Buffer(https://my-host:8443),
  Pragma -> Buffer(no-cache),
  Sec-WebSocket-Extensions -> Buffer(x-webkit-deflate-frame),
  Sec-WebSocket-Key -> Buffer(nk5JVO4I5QRMQnSxAJaRCg==),
  Sec-WebSocket-Version -> Buffer(13),
  Upgrade -> Buffer(websocket)
)
问题是:如果请求来自nginx,那么响应来自Play!为空,不包含任何标题,仅包含协议版本:“HTTP/1.1 0”。 正确的回答来自游戏!看起来是这样的:

HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Sec-WebSocket-Accept: YHVb1xdsVqaObgQxqksBQPhdkvc=
Upgrade: websocket

是的,解决方案当然是使用正确版本的nginx。1.3.7转发“连接:升级”标志失败,因为该功能仅在nginx 1.3.13中引入


我建议使用最新的dev/trunk版本。

nginx似乎放弃了从游戏中获得的“连接:升级”!而是填写“连接:保持活动”,这让websocket连接失败。请参阅http头->不是说websocket可从1.3.13获得吗?nginx1.3.7不支持websocket。
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Sec-WebSocket-Accept: YHVb1xdsVqaObgQxqksBQPhdkvc=
Upgrade: websocket