## 更新 - 2022/03/30 更新插件重载时无需重启 # 编写WebSocket控制器 在LinkCore里WebSocket的开发也是非常的方便 ## 示例 下示例编写了一个最简单的WebSocket的业务, 只需要集成抽象类` WebSocketAbstractController` 并且重载如下几个方法即可直接使用 ``` using LinkCore.Interface.Router; using System; namespace Demo.V1 { class WSDemo : WebSocketAbstractController { public override IWSActionResult OnClosed() { Console.WriteLine("WebSocket 已经断开"); return null; } public override IWSActionResult OnConnect() { Console.WriteLine("发现用户接入"); this.SendStringAsync("恭喜你接入成功!"); return null; } public override IWSActionResult OnReceiveStringMessage(string message) { Console.WriteLine("收到用户发来的消息"); Console.WriteLine(message); this.SendStringAsync("刚刚收到了您发来的消息:" + message); return null; } } } ``` ## 主动发送消息 ``` /// <summary> /// 发送字符串 /// </summary> /// <param name="message"></param> public void SendStringAsync(string message) /// <summary> /// 发送字节 /// </summary> /// <param name="bytes"></param> public void SendBytesAsync(byte[] bytes) ``` 如果这两个方法还不够用的话可以直接使用抽象类内置的属性 `WebSocketer` ``` protected WebSocket WebSocketer; ``` 关于WebSocket可以查阅官网手册 [System.Net.WebSockets 命名空间 | Microsoft Docs](https://docs.microsoft.com/zh-cn/dotnet/api/System.Net.WebSockets?view=net-5.0)