使用 C# 的 websocket 握手请求
Posted
技术标签:
【中文标题】使用 C# 的 websocket 握手请求【英文标题】:websocket handshake request using C# 【发布时间】:2015-09-13 13:09:27 【问题描述】:我正在使用 C# 编写一个 websocket 客户端。但我不知道如何在 C# 中将 websocket 握手请求发送到服务器以及如何生成 sec-websocket-key。
【问题讨论】:
【参考方案1】:客户端请求示例如下所示。
GET /chat HTTP/1.1
Host: example.com:8000
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
服务器响应示例如下所示。
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
看sample websocket server code from mozilla.
要在客户端生成密钥,您可以使用随机生成器。
String secWebSocketKey = Convert.ToBase64String(Encoding.UTF8.GetBytes("WebSocket rocks!"));
【讨论】:
以上是关于使用 C# 的 websocket 握手请求的主要内容,如果未能解决你的问题,请参考以下文章
Opera 12 中的 WebSocket 握手失败(错误请求)