阅前提示
Websocket-sharp提供了实现WebSocket协议客户端和服务器。支持: RFC 6455; 创建客户端和服务器;数据压缩扩展; 安全连接;HTTP身份验证; 查询字符串、header、Cookie ;通过HTTP代理服务器连接 ;.NET Framework 3.5 or
later(包括兼容环境,如Mono)
适合人群 :C#+websocket 使用者
阅读方式:浏览
下载
Github源码
构建
websocket-sharp 只有一个程序集 websocket-sharp.dll
使用VS或者其他工具打开 websocket-sharp.sln 并生成dll文件即可。
将websocket-sharp.dll 放入Unity工程中的Plugins文件夹中。
使用
创建
_websocket = new WebSocket (url)//可以使用using 当出现错误code1001时会关闭websocketusing(var ws new WebSocket (url)){...}
监听
//连接成功时被调用_websocket.OnOpen += (sender, e) => {...}//接收消息,分为字符串消息、字节型消息、单纯的ping_websocket.OnMessage += (sender, e) =>{//MessageEventArgs e//e.Data => string text message//e.RawData => byte[] binary messageif (e.IsText) {...};if(e.IsBinary){...};if(e.IsPing){...};}//接收错误消息,字符串提示与抛出的Exception_websocket.OnError += (sender, e) =>{//ErrorEventArgs e//e.Message e.Exception}//连接断开时_websocket.OnClose += (sender, e) => {...}
这里的OnMessage 被多线程所管理。websocket-sharp 使用ThreadPool管理消息接收,如有需求要自行设置最大和最小线程数
建立连接、发送消息、关闭连接
//连接 & 异步连接_websocket.Connect ();_websocket.ConnectAsync();//发送信息 & 异步_websocket.Send (byte[] data);_websocket.Send (string data);_websocket.Send (FileInfo fileInfo);_websocket.SendAsync (byte[] data, Action<bool> completed);//关闭_websocket.Close();