C# SuperSocket 消息推送


 服務端使用Nuget引用SuperSocket.WebSocket和SuperSocket.Engine

 

 

 

 

 

 

 

 

服務器端代碼【控制台】

using SuperSocket.WebSocket;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Server
{
    class Program
    {
        static void Main(string[] args)
        {
            WebSocketServer server = new WebSocketServer();
            server.NewSessionConnected += server_NewSessionConnected;
            server.NewMessageReceived += server_NewMessageReceived;
            server.SessionClosed += server_SessionClosed;
            try
            {
                server.Setup("127.0.0.1", 40001);//設置端口
                server.Start();//開啟監聽
                PushMsg();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadKey();
        }

        static void PushMsg()
        {
            Thread.Sleep(1000);
            try { sessionList.ForEach(o => { o.Send("測試消息推送"); }); }
            catch (Exception ex) { }
            PushMsg();
        }

        public static List<WebSocketSession> sessionList = new List<WebSocketSession>();

        static void server_SessionClosed(WebSocketSession session, SuperSocket.SocketBase.CloseReason value)
        {
            sessionList.Remove(session);
            Console.WriteLine(session.Origin);
        }

        static void server_NewMessageReceived(WebSocketSession session, string value)
        {
            Console.WriteLine(value);
            session.Send(value);
        }

        static void server_NewSessionConnected(WebSocketSession session)
        {
            sessionList.Add(session);
            Console.WriteLine(session.Origin);
        }
    }
}
View Code

客戶端代碼【網站】

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <textarea id="textarea" style="height: 500px; width: 300px;"></textarea>
    <input type="button" id="send" onclick="send()" value="發送">
    <input type="text" id="message">
    <script type="text/javascript">
        //檢查瀏覽器是否支持WebSocket
        if (!window.WebSocket) {
            console.log('您的瀏覽器不支持WebSocket,請選擇其他的瀏覽器再嘗試連接服務器');
        }
        var el = document.getElementById("textarea");
        var wsClient = new WebSocket('ws://localhost:40001');
        wsClient.open = function (e) {
            el.value += "連接成功!\r\n";
        }
        wsClient.onclose = function (e) {
            el.value += "連接斷開!\r\n";
        }
        wsClient.onmessage = function (e) {
            el.value += "接收消息:" + e.data + "\r\n";
        }
        wsClient.onerror = function (e) {
            el.value += "連接失敗!原因【" + e.data + "】\r\n";
        }
        function send() {
            var oText = document.getElementById("message");
            wsClient.send(oText.value);
        }
    </script>
</body>
</html>
View Code

效果  :

 

程序目錄結構

       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM