Перенаправление php websocket на nodejs

Я хочу создать адаптер на php для пересылки сообщений от клиента javascript на сервер nodejs и наоборот.

WebSockets:

сервер nodejs: WS

php сервер: RatchetPHP

клиент php: RatchetPawl

Код:

сервер websocket на php: chatWSServer.php

класс подключения: connection.php

клиент javascript:

connection = new WebSocket('ws://localhost:9000');
connection.onmessage = (e) => {
    console.info(e.data);
}
connection.onopen = (e) => {
    console.info("connection established!");
}
connection.addEventListener('message', (resData) => {
    console.info("got message:", resData);
});

Проблема:

я пытаюсь открыть соединение с сервером websocket nodejs (localhost: 8889), при подключении клиента javscript к серверу php websocket (localhost: 9000): chatWSServer.php - createConnection () и его работа, но когда клиент javascript пытается отправить сообщение, я получаю:

Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.

Я думаю, это потому, что петля соединителя с храповым механизмом работает - когда я комментирую: loop->run(), клиент может отправлять сообщения.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
170
1

Ответы 1

с помощью @WyriHaximus мне удалось это решить.

ive создал клиент веб-сокета ratchetpawl с тем же циклом, что и цикл сервера веб-сокета ratchet. и теперь его не блокирует!

см. мой репозиторий для решения кода.

Другие вопросы по теме