我已经使用Alchemy Web 套接字实现了一个 Web 套接字服务器,现在正在尝试对其进行压力测试。我在 C# 中编写了以下方法来创建大量客户端以连接到服务器并发送一些数据:
private void TestWebSocket()
{
int clients = 10;
long messages = 10000;
long messagesSent = 0;
String host = "127.0.0.1";
String port = "11005";
WSclient[] clientArr = new WSclient[clients];
for (int i = 0; i < clientArr.Length; i++)
{
clientArr[i] = new WSclient(host, port);
}
Random random = new Random();
var sw = Stopwatch.StartNew();
for (int i = 0; i < messages; i++)
{
clientArr[i % clients].Send("Message " + i);
messagesSent++;
}
sw.Stop();
Console.WriteLine("Clients " + clients);
Console.WriteLine("Messages to Send" + messages);
Console.WriteLine("Messages Sent " + messagesSent);
Console.WriteLine("Time " + sw.Elapsed.TotalSeconds);
Console.WriteLine("Messages/s: " + messages / sw.Elapsed.TotalSeconds);
Console.ReadLine();
for (int i = 0; i < clientArr.Length; i++)
{
clientArr[i].Disconnect();
}
Console.ReadLine();
}
但是,服务器接收的消息较少(即使是很小的数字,例如 100)。或者有时会收到多条消息作为一条消息,例如:
消息 1 = abc 消息 2 = def
接收为 = abcdef
我试图或多或少地复制此处显示的示例。目前,服务器和客户端都在本地运行。关于问题是什么或如何改进测试方法的任何想法?