zoukankan      html  css  js  c++  java
  • WebSocket服务端

    通过NuGget包安装Fleck包,引用using Fleck;   winfrom代码如下

    private void button1_Click(object sender, EventArgs e)
            {
                //启用按钮不可用
                button1.Enabled = false;
                listBox1.Items.Add(DateTime.Now + "服务启用");
                FleckLog.Level = LogLevel.Debug;
                var allSockets = new List<IWebSocketConnection>();
                var server = new Fleck.WebSocketServer("ws://192.168.1.211:8212");
                server.Start(socket =>
                {
                    socket.OnOpen = () =>
                    {
                        listBox1.Items.Add(DateTime.Now + "客户端连接成功!");
                        allSockets.Add(socket);
                    };
                    socket.OnClose = () =>
                    {
                        listBox1.Items.Add(DateTime.Now + "客户端连接断开!");
                        allSockets.Remove(socket);
                    };
                    socket.OnMessage = message =>
                    {
                        Console.WriteLine(message);
                        if (message!=null&& message!="")
                        {
                            Reception reception = new Reception();
                            try
                            {
                                reception = JsonConvert.DeserializeObject<Reception>(message);
                            }
                            catch (Exception)
                            {
    
                                allSockets.ToList().ForEach(s => s.Send(DateTime.Now + "客户端发送数据格式不正确"));
                            }
                            listBox1.Items.Add(DateTime.Now + "客户端发送的数据:" + message);
                            ResponseMessage response = new ResponseMessage();
                            if (reception.description!="")
                            {
                                switch (reception.code)
                                {
                                   //对接收消息的处理
                                }
                            }
                        }
                        else
                        {
                            allSockets.ToList().ForEach(s => s.Send(DateTime.Now + "服务端接收数据为空"));
                        }
                        
                    };
                });
            }
  • 相关阅读:
    手撕RPC框架
    关于JVM的一些冷知识
    luoguP2627 修剪草坪
    [USACO16OPEN]248
    luoguP1171 售货员的难题
    luoguP2016 战略游戏
    luoguP2422 良好的感觉
    POJ1160 [IOI2000]Post Office
    luoguP2015 二叉苹果树
    BZOJ1756 小白逛公园
  • 原文地址:https://www.cnblogs.com/s666/p/14155132.html
Copyright © 2011-2022 走看看