我使用xsockets在本地运行我的ASP.NET Web API应用程序,没有任何问题。当我将项目发布到Azure时,它将无法连接。我启用了Azure的websockets并调整了客户端的xsocket url
发件人: conn =新XSockets.WebSocket("ws://localhost:50838/api/Chat");
收件人: conn =新XSockets.WebSocket("ws://.azurewebsites.net/api/Chat");
有什么建议吗?
阿努德
发布于 2014-03-30 21:33:02
默认情况下,XSockets会传入子协议'XSocketsNET‘,出于某种原因,Azure会在响应中将其过滤掉。它在仿真中运行良好,但是在Azure上,子协议被删除了。这会在Chrome中导致错误,因为chrome检查子协议,给出以下错误:
WebSocket connection to 'ws://xmvc.azurewebsites.net/Home' failed: Error during WebSocket handshake: Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received它在不执行此检查的其他浏览器中工作正常。我在 this sample site running XSockets on a Azure WebSite上试用过IE10和火狐
在我看来,Chrome做的是正确的事情,而Azure有一个bug。
编辑:请注意,Azure WebSites会限制websocket连接!免费站点:5个连接共享站点: 35个连接标准站点: 350个连接
发布于 2014-03-31 17:34:34
根据微软的说法,在Wss / Https上使用WebSockets就可以做到这一点,我刚刚做了一个测试,结果仍然是一样的。
如果在握手过程中传递is from server,那么“不必要的”子协议头很可能会从响应事件中删除。
那么,在使用Windows Azure时,你不能像看起来那样依赖SubProtocol吗?
https://stackoverflow.com/questions/22742081
复制相似问题