## 更新
- 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)