0. 背景
最近有个需求:与Web服务器保持长连接,接收服务端发来的消息,并通过某RPC协议invoke客户端某些回调函数。故有了本文的客户端websocket(C#)
长连接及简易RPC
框架设计内容,此内容分两次介绍,(一)介绍websocket
如何与服务端保持长连接及异步消息处理;(二)介绍简易RPC的框架设计及流程调用。以下为(一)内容。
1. websocket(c#)
主要钩子介绍
WebSocket
是一种计算机通信协议,通过单个TCP连接提供全双工通信信道。它与HTTP的唯一关系是它的握手被HTTP服务器解释为升级请求。
WebSocket
协议使得浏览器和Web服务器之间可以进行更多的交互,促进从服务器到客户端的实时数据传输。它通过提供一种标准化的方式,使服务器向浏览器发送内容,而不需要客户端请求,并允许消息来回传递,同时保持连接打开。以这种方式,可以在客户端和服务器之间进行全双工对话。
WebSocket
的C#版在github [https://github.com/sta/websocket-sharp] 发布,对于如何使用它,在README.md
中有讲到,在这里简单阐述几个主要的钩子函数。
a). 构造
构造一个WebSocket
需要以下几步。
第1步:
需要声明命名空间
using WebSocketSharp;
第2步:
使用构造函数创建一个WebSocket
实例,在参数中填入需要连接Web服务器的host。
var ws = new WebSocket ("ws://example.com")
当然,因为WebSocket
实现了System