Admin
2025-12-02 9e42f0dafa019f5ecf6b0ff425ecb966b002171e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using Fleck;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WIDESEA.Common.ChatHub
{
    public class WebSocketRover
    {
        public static string msg = "默认信息";
        public void socketServer()
        {
            string serverIP = "ws://127.0.0.1:8099"; //System.Configuration.ConfigurationManager.AppSettings["serverIP"];
            var allSockets = new List<IWebSocketConnection>();
            var server = new WebSocketServer(serverIP);
            server.Start(socket =>//服务开始
            {
                socket.OnOpen = () =>
                {
                    Console.WriteLine("Open!");
                    allSockets.Add(socket);
                };
                socket.OnClose = () =>
                {
                    Console.WriteLine("Close!");
                    allSockets.Remove(socket);
                };
                socket.OnMessage = message =>
                { //客户端交互的消息
                    System.Timers.Timer t = new System.Timers.Timer(1000);//实例化Timer类,设置间隔时间为10000毫秒;
                    t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;
                    t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
                    t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
                    allSockets.ToList().ForEach(s => s.Send("Echo: " + msg));
 
                    Console.WriteLine("here === ");
                };
            });
 
 
        }
 
        public void theout(object source, System.Timers.ElapsedEventArgs e)
 
        {
            msg = GetRandomString();
 
 
        }
 
        ///<summary>
        ///生成随机字符串 --用于测试随机发送
        ///</summary>
        ///<param name="length">目标字符串的长度</param>
        ///<param name="useNum">是否包含数字,1=包含,默认为包含</param>
        ///<param name="useLow">是否包含小写字母,1=包含,默认为包含</param>
        ///<param name="useUpp">是否包含大写字母,1=包含,默认为包含</param>
        ///<param name="useSpe">是否包含特殊字符,1=包含,默认为不包含</param>
        ///<param name="custom">要包含的自定义字符,直接输入要包含的字符列表</param>
        ///<returns>指定长度的随机字符串</returns>
        public static string GetRandomString()
        {
            byte[] b = new byte[4];
            new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b);
            Random r = new Random(BitConverter.ToInt32(b, 0));
            string s = null, str = "";
            str += "我们都有一个家abcdefghijklmnopqrstuvwxyz123456789";
            for (int i = 0; i < 15; i++)
            {
                s += str.Substring(r.Next(0, str.Length - 1), 1);
            }
            return s;
        }
    }
}