一、前言:
很多時候控制台需要實作即時通訊服務,可以考慮常用 WebSocket長連接配接來處理;
二、搭建控制台WebSocket服務端:
1、下載下傳AbpVnext控制台服務,參考“控制台服務調用應用層領域層服務”;
2、Nuget引用“Fleck”;
3、HelloWorldService.cs 啟動WebSocket服務:
public class HelloWorldService : ITransientDependency
{
public async void SayHello()
{
Console.WriteLine("Hello World!!!!!!!!!!!!!!!!!!!");
//開啟WebSocket服務:0.0.0.0 表示監聽所有IP
WebSocketHelper_Fleck.WebSocketServer_Start("ws://0.0.0.0:1234");
}
}
三、Html網頁用戶端連接配接WebSocket服務:
<html >
<head>
<meta charset="utf-8">
<title>WebSocket用戶端</title>
</head>
<body class="page-container-bg-solid page-boxed" style="overflow-x:hidden;">
<button onclick="sendMessage('你好服務端,我是用戶端消息,我好想你!')">發送消息</button>
<script type="text/javascript">
//websocket
var ws = new WebSocket('ws://localhost:1234/');
//連接配接上服務端後觸發
ws.onopen = function () {
//連接配接服務端成功
console.log('Connection to server opened');
}
//收到服務端發來的消息後觸發
ws.onmessage = function (evt) {
var data = JSON.parse(evt.data);
Console.Log(data);
}
//當服務端關閉後觸發
ws.onclose = function () { console.log("Connection closed"); }
//發送消息給伺服器端
function sendMessage(msg) {
if (ws.readyState == WebSocket.OPEN) {
ws.send(msg);
}
}
//斷開與伺服器端的連接配接
function disConnect() {
ws.close();
}
</script>
</body>
</html>

四、總結:
簡單實用,AbpVnext 即時通信業可以實用 Signal;
可以簡單的替換那種 周期性調用接口實作重新整理的功能,優雅!