传统的Web应用是这样工作的:
?
浏览器发送HTTP请求到ASP.NET Core Web服务器, 如果一切顺利的话, Web服务器会处理请求并返回响应, 在Payload里面会包含所请求的数据....Polling是实现实时Web的一种笨方法, 它就是通过定期的向服务器发送请求, 来查看服务器的数据是否有变化....Sec-WebSocket-Accept是配合着Sec-WebSocket-Key来运作的, 具体请查阅官方文档.
消息类型
Web Socket的消息类型可以是文本, 二进制....也包括控制类的消息: Ping/Pong, 和关闭.
每个消息由一个或多个Frame组成:
?
所有的Frame都是二进制的. 所以文本的话, 就会首先转化成二进制....看下例子:
首先ASP.NET Core项目里已经内置了WebSocket, 但是需要配置和使用这个中间件, 在Startup:
?
这里我们设置了每隔120秒就ping一下.