创建WebSocket服务
约 251 字小于 1 分钟
2025-02-12
在Mirage的工程中,也是可以创建websocket服务的,而且比Asp.Net还要方便一些。 新建一个controller,继承于Mirage.WebSocketController
提示
Controller的注释,将作为api文档的说明文字。
/// <summary>
/// websocket连接后,
/// 先发送名称
/// 再发送代号
/// 然后就会不断收到服务器的信息
/// </summary>
public class DemoWebSocketController : WebSocketController
{
public override async Task OnConnected(WebSocket webSocket)
{
var name = await webSocket.ReadString();
var code = await webSocket.ReadString();
readData(webSocket);//继续在新的线程接收更多数据
while (true)
{
await Task.Delay(2000);
await webSocket.SendString($"hi,{name} - {code},现在时间是:{DateTime.Now}");
}
}
async void readData(WebSocket webSocket)
{
while (true)
{
try
{
var text = await webSocket.ReadString();//ReadString需要using Mirage;
}
catch {
//连接断开了
return;
}
}
}
}
然后,在Program.cs中注册服务:
msp.Register<Controllers.DemoWebSocketController>("PushService", "信息推送", true);
启动服务,然后打开浏览器,输入:http://webapi地址/Miragedoc,可以看到websocket的说明:
前端调用:
<script>
var websocket = new WebSocket("ws://127.0.0.1:5002/PushService");
websocket.onopen = function () {
websocket.send("Jack.T");
websocket.send("666");
}
websocket.onmessage = function (e) {
console.log(e.data);
}
</script>