Как инициализировать Websocket на существующем порту на сервере Puma? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть приложение ruby, в котором я использую веб-сервер puma, который прослушивает порт 8008.

Теперь у меня есть требование для реализации socket.io/websockets.

Я изучал возможность использования EventMachine :: WebSocket, но так как мое приложение puma уже использует порт 8008, я не могу привязаться к 8008.

Мой пользовательский интерфейс написан на javascript, и приложение puma в основном предоставляет конечные точки отдыха.

Как я могу реализовать веб-сокеты в таком сценарии?

1 Ответ

0 голосов
/ 09 ноября 2018

Я бы оставил сервер Rails на порте, на котором он работает, и перенаправил ваши запросы веб-сокетов на другой сервер, который работает на другом порту.

Этот вопрос / ответ по существу описывает реализацию. Так что вы, вероятно, захотите что-то вроде:

match "/websocket/(*path)" => redirect {|params, req| "http://your.domain:8009/#{params[:path]}"}

, где 8009 - это порт, на котором работает сервер Websocket.

...