C# WebSocket服務端


引用nuget包Fleck

IDictionary<string, IWebSocketConnection> SocketList = new Dictionary<string, IWebSocketConnection>();
private void startSockeListener()
{


WebSocketServer server = new WebSocketServer("ws://127.0.0.1:30007");//監聽本機
//出錯后進行重啟
server.RestartAfterListenError = true;

//開始監聽
server.Start(socket =>
{

socket.OnOpen = () => //連接建立事件
{
//客戶端url
string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;
SocketList.Add(clientUrl, socket);
socket.Send("hello");
};
socket.OnClose = () => //連接關閉事件
{
string clientUrl = socket.ConnectionInfo.ClientIpAddress + ":" + socket.ConnectionInfo.ClientPort;
//如果存在這個客戶端,那么對這個socket進行移除
if (SocketList.ContainsKey(clientUrl))
{
//if (SocketList[clientUrl] != null)
//{
// SocketList[clientUrl].Close();
//}
SocketList.Remove(clientUrl);
}
};
socket.OnMessage = message => //接受客戶端網頁消息事件
{
Console.WriteLine(message);
};
});
}
//向客戶端發送消息
private void SendMessage(string msg)
{
foreach (var item in SocketList.Values)
{
if (item.IsAvailable == true)
{
item.Send(msg);
}
}

}
//關閉與所有客戶端的連接
private void CloseSocket()
{

foreach (var item in SocketList.Values)
{
if (item != null)
{
item.Close();
}
}
}


免責聲明!

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



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