Сбой соединения WebSocket с ‘ws: // localhost: 8080 /’: Ошибка при установлении соединения: net :: ERR_CONNECTION_REFUSED

У меня нет соединения Websocket между клиентским скриптом и сервером.

Это работает нормально в моей местной среде.

Также я следую за этим ссылка на сайт.

Вот серверный скрипт, который инициализирует сервер websocket и прослушивает соединение клиента с 8080 порт.

public function run()
{
$loop   = Factory::create();
$pusher = new Pusher;
$context = new Context($loop);
$pull = $context->getSocket(ZMQ::SOCKET_PULL);
$pull->bind('tcp://127.0.0.1:5555'); // Binding to 127.0.0.1 means the only client that can connect is itself
$pull->on('message', array($pusher, 'onBlogEntry'));

// Set up our WebSocket server for clients wanting real-time updates
$webSock = new Server('0.0.0.0:8080', $loop); // Binding to 0.0.0.0 means remotes can connect
$webServer = new IoServer(
new HttpServer(
new WsServer(
new WampServer(
$pusher
)
)
),
$webSock
);

$loop->run();

А вот клиентский скрипт:

var conn = new ab.Session('ws://localhost:8080',
function() {
/* subscribe to following topics */
conn.subscribe('new_order', function(topic, data) ..

Опять же, это работает нормально в локальной настройке.

Также следует отметить, что мое приложение размещается с использованием указанного порта из контейнера Docker.

http://192.168.12.52:8094/xyz/new/....

Я также попытался указать IP в клиентском скрипте:

var conn = new ab.Session('ws://192.168.12.52:8080',
function() {
/* subscribe to following topics */
conn.subscribe('new_order', function(topic, data) ...

В этом случае я получаю следующую ошибку:

WebSocket connection to 'ws://192.168.11.32:8080/' failed: Error during WebSocket handshake: Unexpected response code: 403

Чего здесь не хватает?

0

Решение

Вероятно, это проблема с сертификатом ssl. Я думаю, что новые версии браузеров имеют проблемы с веб-сокетами без ssl. у вас может быть самозаверяющий сертификат. пытаться https://192.168.12.52:8080 и если вы увидели ошибку недействительного сертификата (что-то вроде: ваше соединение не защищено или ваше соединение не является частным), нажмите кнопку «Добавить» или добавьте исключение, затем повторите попытку с тем же браузером. также вы можете использовать wss: // вместо ws: //.

0

Другие решения

Других решений пока нет …