我的IE、Chrome、Chrome android、Opera、Firefox浏览器通过WebSocket成功连接到我的IIS。参见示例:
来自客户端的握手如下:
/SimpleChatApplication/ChatHandler。ashx HTTP/1.1
主持人:pc2014:80
连接:升级
杂注:no - cache
cache - control: no - cache
升级:websocket
产地:http//pc2014
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 6.3;WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
接收语言:俄文,en; q = 0.8, en - us; q = 0.6
Sec-WebSocket-Key: rrKYVVaPKmMnINtsUh9BNg = =
Sec-WebSocket-Extensions: permessage-deflate;client_max_window_bits
来自服务器的握手如下所示:
HTTP/1.1 101交换协议
cache - control:私人
升级:Websocket
服务器:microsoft iis/8.5
X-AspNet-Version: 4.0.30319
Sec-WebSocket-Accept:智商/qcgyu36N/d1p0JEU7nZ3W8Vo =
连接:升级
X-Powered-By: ASP。净
日期:Wed, 16 Sep 2015 23:54:37 GMT
但是如果我使用safari浏览器,那么:
来自客户端的握手如下:
/SimpleChatApplication/ChatHandler。ashx HTTP/1.1
升级:WebSocket
连接:升级
主持人:pc2014:80
来源:http://pc2014
Sec-WebSocket-Key1: N9 Q32K275z 5z
Sec-WebSocket-Key2: -1 z 6#HA g)1Aue0483 420d
来自服务器的握手如下所示:
HTTP/1.1 200 OK
cache - control:私人
服务器:microsoft iis/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP。净
日期:Wed, 16 Sep 2015 23:56:19 GMT
内容长度: 0
HTTP/1.1 400错误请求
的content - type: text/html;charset = us - ascii
服务器:Microsoft-HTTPAPI/2.0
日期:Wed, 16 Sep 2015 23:56:19 GMT
连接:紧密的
内容长度: 326
错误请求
错误请求——无效的动词
HTTP错误400。请求谓词无效
请告诉我哪里出错了?或者safari发送了错误的请求,或者IIS识别错误。
我使用www.websocket.org网站进行测试。在测试
Safari似乎实现了一个旧版本的WebSocket标准,名为hybi。
显然ASP。NET只支持最终的RFC6455。这也是主流浏览器使用的版本
使用SignalR库。ASP。. NET SignalR是一个面向asp.net的新库。NET开发人员可以非常简单地将实时web功能添加到应用程序中。什么是"实时网络"功能?它是让您的服务器端代码实时地将内容推送到连接的客户端的能力。