Почему скрипт запуска сервера ratchet запускается не сразу?

Ссылка скопирована
1 ответ

Здравствуйте, подскажите, почему при запуске сервера ratchet путём открытия файла php со скриптом происходит долгая загрузка страницы до таймаута и ошибки соответственно? Но, если сразу же перезагрузить страницу не дожидаясь ошибки, то моментально все запускается, в чем тут может быть дело? Настройки сервера, сам код запуска, ssl или просто запускать по-другому? Хотелось бы повесить его на планировщик, но с таким запуском это не будет работать нормально, он просто не будет запускаться

сам скрипт запуска

<?php use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; use MyAppChat; use ReactEventLoopFactory; use ReactEventLoopLoop; use ReactSocketSecureServer;     require dirname(__DIR__) . '/vendor/autoload.php'; $app = new RatchetHttpHttpServer(     new RatchetWebSocketWsServer(         new MyAppChat()     ) );  $loop = ReactEventLoopFactory::create();  $secure_websockets = new ReactSocketServer('0.0.0.0:8443', $loop); $secure_websockets = new ReactSocketSecureServer($secure_websockets, $loop, [     'local_cert' => '/var/www/www-root/data/www/cert/node.crt',     'local_pk' => '/var/www/www-root/data/www/cert/node.key',     'verify_peer' => false,     'allow_self_signed' => true ]);  $secure_websockets_server = new RatchetServerIoServer($app, $secure_websockets, $loop); $secure_websockets_server->run(); ?>

<?php use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; use MyAppChat; use ReactEventLoopFactory; use ReactEventLoopLoop; use ReactSocketSecureServer; require dirname(__DIR__) . '/vendor/autoload.php'; $app = new RatchetHttpHttpServer( new RatchetWebSocketWsServer( new MyAppChat() ) ); $loop = ReactEventLoopFactory::create(); $secure_websockets = new ReactSocketServer('0.0.0.0:8443', $loop); $secure_websockets = new ReactSocketSecureServer($secure_websockets, $loop, [ 'local_cert' => '/var/www/www-root/data/www/cert/node.crt', 'local_pk' => '/var/www/www-root/data/www/cert/node.key', 'verify_peer' => false, 'allow_self_signed' => true ]); $secure_websockets_server = new RatchetServerIoServer($app, $secure_websockets, $loop); $secure_websockets_server->run(); ?>

Дополнительно:

Попробуйте IP 127.0.0.1 сделать.
Сервер Linux?

Ответы:

Потому что такие вещи надо запускать в cli-режиме (из командной строки), а судя по фразе "происходит долгая загрузка страницы до таймаута" запускаете вы скрипт из браузера, что концептуально не правильно.
Да в таком случае вы ловите таймаут ответа от веб-сервера, и запущенный процесс какое-то время живёт, но может умереть в любой момент, как только будет перезагружен веб-сервер или в случае с php-fpm умрёт дочерний процесс.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

Проблема, когда скрипт запуска сервера Ratchet не запускается сразу, может быть вызвана несколькими различными причинами. Возможно, что ваш сервер перегружен или имеет ограниченные ресурсы, что замедляет запуск процесса. Также, возможно, что у вас есть другие процессы, которые конфликтуют с запуском сервера Ratchet.

Для того чтобы устранить эту проблему, вам следует выполнить следующие шаги:

1. Проверьте, что у вас достаточно ресурсов на сервере для запуска сервера Ratchet. Убедитесь, что ваш сервер не перегружен и что у вас достаточно памяти и процессорного времени.

2. Проверьте, что нет других процессов, которые могут конфликтовать с запуском сервера Ratchet. Закройте все ненужные процессы и программы, которые могут занимать ресурсы сервера.

3. Попробуйте увеличить таймаут запуска сервера Ratchet. Для этого вы можете использовать опцию timeout при запуске сервера. Например, вы можете установить timeout в 30 секунд: php server.php --timeout=30.

4. Проверьте ваш код на наличие ошибок или блокирующих операций, которые могут замедлять запуск сервера. Убедитесь, что ваш код оптимизирован и не содержит узких мест.

Если после выполнения всех этих шагов проблема все еще остается, вам может потребоваться обратиться к специалисту по серверному программированию для дальнейшей диагностики и устранения проблемы.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно