標籤:display input foreach exce public setup image write nec
服務端使用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
程式目錄結構
效果
C# SuperSocket 訊息推送