这让我困扰了将近两天。
我在给Bayeux客户写信。我从Jetty使用WebSocket-客户端库并连接到费耶服务器。
我使用握手请求打开到服务器(所有本地主机)的WS连接:
{"channel":"/meta/handshake","supportedConnectionTypes":["long-polling","callback-polling","websocket"],"version":"1.0"}
客户端立即收到握手响应:
{"channel":"/meta/handshake","successful":true,"version":"1.0","supportedConnectionTypes":["long-polling","cross-origin-long-polling","callback-polling","websocket","eventsource","in-process"],"clientId":"l8xhgf0t5gikcukcknhr5npfx11s5w9","advice":{"reconnect":"retry","interval":0,"timeout":45000}}
然后客户端发送连接请求:
{"clientId":"l8xhgf0t5gikcukcknhr5npfx11s5w9","connectionType":"websocket","channel":"/meta/connect"}
然后服务器挂起45s (超时值),然后发送以下响应:
{"clientId":"l8xhgf0t5gikcukcknhr5npfx11s5w9","channel":"/meta/connect","successful":true,"advice":{"reconnect":"retry","interval":0,"timeout":45000}}
Faye服务器挂起前的最后一条日志消息: Ping "l8xhgf0t5gikcukcknhr5npfx11s5w9",45
但我从来没有在客户端收到过平框。我不知道为什么服务器挂起为这45,但我需要解决这个问题。你们以前见过这个吗?任何帮助/建议/暗示都非常感谢:)
发布于 2015-02-23 19:40:47
您正在经历的行为正是Bayeux服务器应该做的事情。
服务器不“挂起”;它以长轮询的方式保存请求。
我不太了解Faye,但是定义了CometD项目的Bayeux协议规范以同样的方式实现了一个服务器,其中/meta/connect
消息请求是为超时值保存的。
https://stackoverflow.com/questions/28679921
复制相似问题