C# & JS WebSocket 某些用户无法连接到服务器
C# & JS WebSocket Some users can't connect to server
我现在遇到了一个非常大的问题:我有一个服务器,用户可以在其中使用Alchemy库连接和发送和接收用C#编写的消息,但现在我从一些用户那里得到了一些报告,他们无法连接到websocket服务器。在服务器日志中,它们会自动断开连接,而不是连接。
下面是 C# 代码:
internal static bool Init(int bindPort, int maxConnections)
{
_Port = bindPort;
_maxConnections = maxConnections;
_activeConnections = new HashSet<int>();
try
{
var aServer = new WebSocketServer(_Port, IPAddress.Any)
{
OnReceive = OnReceive,
OnSend = OnSend,
OnConnected = OnConnect,
OnDisconnect = OnDisconnect,
TimeOut = new TimeSpan(0, 5, 0)
};
aServer.Start();
Console.WriteLine(" [] WebSockets port: " + _Port + ".");
return true;
}
catch
{
Console.WriteLine(" WebSocket konnte nicht geladen werden");
return false;
}
}
public static void SendAll(string data)
{
foreach(UserContext Kubbo in OnlineUsers.Keys)
{
Kubbo.Send(data);
}
}
private static void OnConnect(UserContext context)
{
try
{
int connectionID = 0;
for (int i = 1; i < _maxConnections; i++)
{
if (_activeConnections.Contains(i) == false)
{
connectionID = i;
break;
}
}
if (connectionID > 0)
{
Console.WriteLine("[" + connectionID + "] Verbindung " + context.ClientAddress);
context.Send("A");
_activeConnections.Add(connectionID);
_acceptedConnections++;
var me = new User { Context = context };
OnlineUsers.Add(context, context.ClientAddress.ToString());
}
}
catch
{
}
}
internal static void OnDisconnect(UserContext context)
{
try
{
OnlineUsers.Remove((UserContext)context);
Console.WriteLine("[] Verbindung wurde geschloßen");
}
catch
{
Console.WriteLine("{}");
}
}
Javascript代码(使用JavaScript中实现的普通Socket API非常简单):
var ws = new WebSocket("ws://localhost:38819/");
ws.onopen = function()
{
ws.send("A");
alert("Connection sucessfully opened");
};
ws.onclose = function()
{
alert("Connection is closed...");
};
服务器在什么操作系统上运行?例如,Windows 7 旗舰版的默认值为 20 个并发连接。
相关文章:
- SignalR客户端启动连接时如何设置用户
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 公共任务连接()在用户连接到中心类时未触发
- Zkoss:如何通知用户会话超时或与服务器的连接丢失
- 在连接期间隐藏用户,不使用 goinstant
- Socket.io-io.to.emit向所有连接的用户发射
- nodeJS视频流,当用户断开连接或移动到不同页面时,连接不会关闭
- Node.js:在用户连接之前向客户端发送数据
- Facebook已连接但我的用户是一个空对象
- SignalR异常“;无法识别的用户标识.在活动SignalR连接期间,用户标识无法更改&”;
- 套接字连接用户在 swift 中多次触发
- Facebook 连接唯一的秘密用户标识符
- 如果用户连接/断开与Facebook的连接,则动态更新页面
- Node js Socket.io:如何避免多个用户连接
- Node.js/Sockets-用户连接,它加载以前的消息,但它将消息加载到所有其他聊天用户,而不是刚刚连接的用户
- socket.io在用户连接时未注册
- 安全性:使用仅客户端代码创建唯一的用户连接
- 在socket . io中限制每个计算机/用户连接的套接字
- 保持对每个用户连接套接字的引用
- 无法在用户连接时持久化套接字数组