C# & JS WebSocket 部分用户无法连接服务器
Posted
技术标签:
【中文标题】C# & JS WebSocket 部分用户无法连接服务器【英文标题】:C# & JS WebSocket Some users can't connect to server 【发布时间】:2014-12-23 18:23:45 【问题描述】:我现在遇到了一个非常大的问题: 我有一个服务器,用户可以使用 Alchemy 库连接并发送和接收用 C# 编写的消息,但现在我收到了一些来自 一些 用户的报告,他们无法连接到 websocket 服务器。在 Serverlog 中,它们会自动断开连接而不是连接。
这是 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...");
;
【问题讨论】:
【参考方案1】:服务器在什么操作系统上运行?例如,Windows 7 Ultimate 默认为 20 个并发连接。
【讨论】:
操作系统是Windows Server 2008 PS:websocket服务器的初始化是WebSocket.Init(38819, 250); 250 是最大连接数 您的应用程序是否使用并发? 不,但我有一个新标记,我已经对 7 个用户进行了测试,所有用户都有相同的浏览器和版本,但是在两个用户中,每次连接都会被另外 5 个用户关闭,它的工作就像一个魅力我真的很沮丧:/以上是关于C# & JS WebSocket 部分用户无法连接服务器的主要内容,如果未能解决你的问题,请参考以下文章
C# HttpListener Prefixes 不接受 `ws` 阻止 JS WebSocket 连接
从 C# 程序连接基于 node.js 的 socket.io WebSocket 服务器
C# websocket与html js实现文件发送与接收处理
反应客户端:websocket.js:83 WebSocket 连接到 'ws://localhost:3009/socket.io/?EIO=4&transport=websocket' 失