天天看点

【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;

可以简单的替换那种  周期性调用接口实现刷新的功能,优雅!