2025-03-28 09:49:56 +08:00

80 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using WebSocket4Net;
namespace SuperSocketTest
{
class Program
{
public static List<WebSocket> webSocket = null;
static void Main(string[] args)
{
webSocket = new List<WebSocket>();
int i = 0;
//for (int i = 0; i < 200; i++)
//{
WebSocket webSocket4Net = new WebSocket("ws://localhost:7119/?user=888888042002&" + i);
webSocket4Net.Opened += WebSocket4Net_Opened;
webSocket4Net.MessageReceived += WebSocket4Net_MessageReceived;
webSocket4Net.Error += WebSocket4Net_Error;
webSocket4Net.Closed += WebSocket4Net_Closed;
webSocket4Net.AutoSendPingInterval = 5;
webSocket4Net.EnableAutoSendPing = true;
webSocket4Net.Open();
Console.WriteLine($"客户端【{i}】连接成功!");
Thread thread = new Thread(() => ClientSendMsgToServer(webSocket4Net, i.ToString()));
thread.IsBackground = true;
thread.Start();
Thread.Sleep(TimeSpan.FromMilliseconds(100));
//}
//webSocket4Net = new WebSocket("ws://47.110.76.151:7119");
Console.WriteLine("按任意键结束。。。");
Console.ReadKey();
//webSocket4Net.Dispose();
}
private static void WebSocket4Net_Closed(object sender, EventArgs e)
{
Console.WriteLine($"客户端下线");
}
private static void WebSocket4Net_Error(object sender, SuperSocket.ClientEngine.ErrorEventArgs e)
{
Console.WriteLine($"错误:{e.Exception.Message}");
}
public static void ClientSendMsgToServer(WebSocket webSocket, string user)
{
string str_user = user;
int i = 88;
while (true)
{
Console.WriteLine($"客户端发送数据{str_user}");
string send = str_user + "|" + str_user + "的消息";
byte[] sendByte = Encoding.UTF8.GetBytes(send);
webSocket.Send(sendByte, 0, sendByte.Length);
//webSocket4Net.Send($"{i++}");
Thread.Sleep(TimeSpan.FromSeconds(5));
}
}
static int count = 0;
private static void WebSocket4Net_MessageReceived(object sender, MessageReceivedEventArgs e)
{
count++;
Console.WriteLine($"服务端回复数据:{DateTime.Now}【{e.Message}!】{count}");
}
private static void WebSocket4Net_Opened(object sender, EventArgs e)
{
//if (((WebSocket)sender).State == WebSocketState.Open)
// ((WebSocket)sender).Send($"888888042002|");
}
}
}