天天看點

【Abp VNext】實戰入門(三):【2】控制台服務 —— 實作 WebSocket 通訊服務

一、前言:

很多時候控制台需要實作即時通訊服務,可以考慮常用 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>
           
【Abp VNext】實戰入門(三):【2】控制台服務 —— 實作 WebSocket 通訊服務

四、總結:

簡單實用,AbpVnext 即時通信業可以實用 Signal;

可以簡單的替換那種  周期性調用接口實作重新整理的功能,優雅!

繼續閱讀