情况是我使用像这样的shell脚本启动Rachet套接字服务器
$webSocketServer = new WsServer(new Chat());
$originCheck = new OriginCheck($webSocketServer, ['xdomain.com']);
$server = IoServer::factory(
new HttpServer($originCheck), 8080);
$server->run();
我已经有一个使用AngularJs Websocket服务的客户端构建。 直到现在还好。
问题 截至目前,您可以看到我只是在端口8080上运行此服务器的终端中手动运行此脚本。
但我想要实现的是创建一个用户生成的聊天室。
从某种意义上说,当用户访问xdomain.com时。他可以选择创建聊天室。他点击按钮,它将点击我的服务器。我的服务器应该为该用户创建一个新的套接字服务器并给他一个密码/链接。用户将此代码发送给他的朋友。
当他们的朋友访问xdomain.com时,他们会看到两个选项
1 - 加入房间(他们必须提供他们从朋友那里得到的代码) 2 - 创建一个聊天室(这将按照我上面描述的相同方式运行)
现在我不确定这个架构。是好/坏/可能/不可能。
一个Rachet套接字服务器能够处理多少个连接?
对于创建聊天室的每个请求,我的脚本将在新的可用随机端口上创建一个新的Rachet套接字服务器。让我们假设这个站点变得非常流行,我的vps能否在不同的端口上打开这么多套接字服务器?我有这么多可用的端口吗?
此外,
在一个聊天室(Socker Server)上,用户是否能够传输Socket服务器可以接收的媒体文件或其正文消息?
由于
答案 0 :(得分:1)
为新房间创建套接字服务器 - 这是个坏主意。 首先,文件描述符的最大端口数是65535 +限制(cat / proc / sys / fs / file-max)
套接字服务器可以保持很多连接(例如我的socket-server可以保持正常的12000日)
我的意见: