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("你好"); });
    }
    }
    }
    }
    

      

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

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

    你好,我是【咬轮猫】

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

  • 相关阅读:
    javascript
    js中 filter()方法
    DOM 属性方法用法
    zabbix-4.0-如何监控windows服务和实战监控SQL SERVER数据
    路由交换-华为交换机查询MAC/ARP配置电脑地址实战
    杀毒软件-使用杀毒软件带的防火墙设置端口访问控制-保护终端安全
    windows-win10各版本升级密钥
    等保心得经验总结
    Emacs服务器模式以及emacsclient配置
    PyTorch自动微分基本原理
  • 原文地址:https://www.cnblogs.com/Hero-/p/9713210.html
Copyright © 2011-2022 走看看