zoukankan      html  css  js  c++  java
  • c#基于supersocket的简单websocket服务端收发消息实现

    using log4net;
    using SuperSocket.SocketBase;
    using SuperSocket.WebSocket;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace SupersocketServer
    {
    class Program {
    private static readonly ILog infoLogger = LogManager.GetLogger("Logger");
    static void Main(string[] args)
    {
    
    WebSocketServer ws = new WebSocketServer();
    ws.NewMessageReceived += Ws_NewMessageReceived;//当有信息传入时
    ws.NewSessionConnected += Ws_NewSessionConnected;//当有用户连入时
    ws.SessionClosed += Ws_SessionClosed;//当有用户退出时
    ws.NewDataReceived += Ws_NewDataReceived;//当有数据传入时
    if (ws.Setup(10086))//绑定端口
    ws.Start();//启动服务
    infoLogger.Info("服务已启动");
    Console.ReadKey();
    }
    public static List<WebSocketSession> sessionList = new List<WebSocketSession>();
    private static void Ws_NewDataReceived(WebSocketSession session, byte[] value)
    {
    string str = Encoding.UTF8.GetString(value);
    infoLogger.InfoFormat("数据传入 id:{0},value:{1}", session.SessionID, str);
    }
    
    private static void Ws_SessionClosed(WebSocketSession session, CloseReason value)
    {
    sessionList.Remove(session);
    infoLogger.InfoFormat("用户退出:{0},value:{1}", session.SessionID, value);
    }
    
    private static void Ws_NewSessionConnected(WebSocketSession session)
    {
    sessionList.Add(session);
    infoLogger.InfoFormat("用户连入:" + session.SessionID);
    }
    
    private static void Ws_NewMessageReceived(WebSocketSession session, string value)
    {
    infoLogger.InfoFormat("接收消息 id:{0},value:{1}", session.SessionID, value);
    if (value=="Hello")
    {
    //模拟心跳包
    sessionList.ForEach(o => { o.Send("你好"); });
    }
    }
    }
    }
    

      

    -------------------------------------------

    学而不思则罔,思而不学则殆

    你好,我是【咬轮猫】

    -------------------------------------------

  • 相关阅读:
    快速幂取模
    程序人生系列之新闻发布系统 0105
    JavaWeb之博客系统(四)
    [转]树状数组
    题目:免费午餐
    题目:删数问题
    题目:三元组
    题目:分子团
    题目:[汪老师结婚]婚礼上的袭击
    题目:[SBN号码]
  • 原文地址:https://www.cnblogs.com/Hero-/p/9713210.html
Copyright © 2011-2022 走看看