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 + "服务端接收数据为空"));
                        }
                        
                    };
                });
            }
  • 相关阅读:
    报表插件
    开发工具安装运行bug总结
    UML学习笔记
    Asp.net MVC中的ViewData与ViewBag
    mvc 4 Razor (@html.xx)语法大全以及应用
    数据大并发处理
    vs2010常用快捷方式
    asp.net mvc3+EF4.1项目实战
    jquery,javascript常用
    vs2010常见错误
  • 原文地址:https://www.cnblogs.com/s666/p/14155132.html
Copyright © 2011-2022 走看看