查询棘轮套筒

时间:2017-03-06 07:40:29

标签: sockets ratchet

  • 我正在使用棘轮插座。我建立了一个新的服务器连接,我想阻止服务器运行。在这种情况下,我有IP(主机名)和端口与我,所以我怎么能阻止它?
  • 是否可以建立永不停止的服务器连接?
  • 当我建立服务器连接时,第一天数据输出完全来自数据库,但是在第二天,错误产生为"连接由外部主机"关闭。但我仍然可以连接到那个端口。

代码

<?php 
use Ratchet\Server\IoServer;
use MyApp\Chat;
use React\EventLoop\Factory;
use React\ZMQ\Context;
require dirname(__DIR__) . '/vendor/autoload.php';
require dirname(__DIR__) . '/src/MyApp/Chat.php';

$server = IoServer::factory(
    new Chat(), 
    6666
);

$server->run();

?>

1 个答案:

答案 0 :(得分:0)

1

  

我正在使用棘轮插座。我已经建立了一个新的服务器连接   我想阻止服务器运行。在这种情况下,我有   IP(主机名)和我的端口,那我怎么能阻止它呢?

我假设您当前通过在终端窗口或屏幕中将其作为php脚本运行来运行您的Ratchet服务器。 例如:php push-server.php

停止运行脚本后,服务器将停止运行。

2

  

是否可以建立永不停止的服务器连接?

是的,如果你的php脚本从终端停止工作,你必须手动重启它。最好使用Ratchet推荐的Supervisor(过程控制系统)等程序。

点击此链接了解详情http://supervisord.org/installing.html

supervisord服务将监控您的php脚本,如果崩溃适合生产环境,它将自动重启。

3

  

当我建立服务器连接时,第一天数据输出是完美的   从DB,但在第二天,错误生成为“连接是   由外国主机关闭“。但我仍然可以连接到该端口。

这很常见,我也注意到了。它通常发生在服务器负载过重或超时时。如果您看到此消息,您的JavaScript应检查此消息并重新启动新连接。您也可以在随机计时器之后再次尝试。

<强>编辑

此外,Ratchet \ Server \ IoServer的__construct方法需要3个prams,其中第3个是可选的。第一个和第二个需要是MessageComponentInterface和ServerInterface的对象。

public function __construct(MessageComponentInterface $app, ServerInterface $socket, LoopInterface $loop = null) {

实例化IoServer的方式似乎不正确。