ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# websocket类库Fleck学习

2022-07-23 16:33:53  阅读:209  来源: 互联网

标签:类库 WebSocket socket SocketIO C# void Fleck Console allSockets


前端:可以用这个篇介绍的代码,详解JS WebSocket断开原因和心跳机制

后端:winform程序编译成控制台程序

using Fleck;
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            StartWebSocket();
        }

       static List<IWebSocketConnection> allSockets = new List<IWebSocketConnection>();
        private static void StartWebSocket()
        {
            FleckLog.Level = LogLevel.Debug;
            var server = new WebSocketServer("ws://0.0.0.0:7181");
            server.Start(socket =>
            {
                socket.OnOpen = () =>
                {
                    Console.WriteLine("Open!");
                    allSockets.Add(socket);
                };
                socket.OnClose = () =>
                {
                    Console.WriteLine("Close!");
                    allSockets.Remove(socket);
                };
                socket.OnMessage = message =>
                {
                    Console.WriteLine(message);
                    allSockets.ToList().ForEach(s => s.Send("Echo: " + message));
                };
            });
        }

        /// <summary>
        /// 发消息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            foreach (var socket in allSockets.ToList())
            {
                if (socket.IsAvailable == true)
                {
                    socket.Send(textBox2.Text);
                }
            }
            textBox2.Text = "";
        }

        /// <summary>
        /// 关闭所有连接
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            //关闭与客户端的所有的连接
           foreach (var item in allSockets)
           {
               if (item != null)
               {
                   item.Close();
               }
           }
        }
    }
  • WebSocket和SocketIO、SignalR总结:WebSocket是H5提出的规范,仍然有浏览器不支持。SocketIO将WebSocket、AJAX和其它的通信方式全部封装成了统一的通信接口。WebSocket是SocketIO的一个子集。SignalR是微软出品的SocketIO。

标签:类库,WebSocket,socket,SocketIO,C#,void,Fleck,Console,allSockets
来源: https://www.cnblogs.com/anjun-xy/p/16512275.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有