2013-04-26 2 views
3

Недавно я обнаружил autobahn python и js как удобный метод для создания паба/суб-сервера и соответствующего клиента даже с помощью rpc-вызовов.Как настроить Autobahn Pub/Sub Server и Web-сервер Autobahn на одном и том же порту

После просмотра учебных пособий я установил тестовую версию с сервером websocket и веб-сервером, работающим на том же порту. Сервер периодически передает данные клиенту через веб-узлы. Html пользователь получает ложь от root localhost. Все это прекрасно работает.

Однако я хочу выполнить следующее: установить паб/вспомогательный сервер и веб-сервер, прослушивающий один и тот же порт.

В учебниках показано только, как настроить их на двух разных портах (как показано на странице http://autobahn.ws/python/tutorials/pubsub).

Im очень новый для python в целом и autobahn и скрученный особенно. Любые советы были бы очень приятными!

Большое спасибо!

Марк

ответ

0

Я бы поставил Nginx как интерфейс, который перенаправляет каждый вызов либо PubSub или в сети ... Последние Nginx поддерживает переадресацию WebSocket.

Или вы человек написать что-то подобное с Twisted :)

Другой альтернативой было бы адаптировать autobahn.websocket.WebSocketServerProtocol и его подкласс autobahn.wamp.WampServerProtocol к Twisted.web. Это должно быть должно быть.

+0

Благодарим моноид за ваш совет. Я просмотрю классы и посмотрю, чего я смогу достичь. Nginx - это определенно вариант, но я предпочел бы другой способ :). Im все еще надеясь найти хорошее решение вместо того, чтобы переписывать классы autobahn. Возможно, с помощью twisted и autobahn для запуска websocket и веб-сервера на том же порту, поэтому должен быть способ сделать это с помощью pub/sub тоже :) – user2323407

1

Несомненно. Вы можете запустить сервер WAMP/WebSocket и простой старый веб-сервер на один порт с использованием Autobahn. Вот example для чистого WebSocket, а here - один для WAMP.

Отказ от ответственности: Я являюсь автором Autobahn и работаю в Tavendo.

+0

Привет, Тобиас Оберштейн, , пожалуйста, предоставьте дополнительную информацию об этом? См. Мой последний ответ, если вы можете взглянуть на исходный код. Спасибо! – user2323407

+0

Примеры можно найти здесь: https://github.com/tavendo/AutobahnPython/tree/master/examples – EmpireJones

1

При использовании WAMP при прослушивании HTTP и WS-серверов на одном и том же порту вам необходимо будет запустить ваш экземпляр WampServerFactory вручную, как описано here.

factory = WampServerFactory("ws://localhost:8080") 
factory.protocol = YourServerProtocolClass 
factory.startFactory() # <--- need to call this manually 
resource = WebSocketResource(factory) 
root = File(".") 
root.putChild("ws", resource) 

Для получения более подробной информации см this complete example.

+0

Файл перемещен [здесь] (https://github.com/tavendo/AutobahnPython/blob/master/ примеры/twisted/wamp/app/keyvalue/store.py), так как Autobahn обновлен для WAMPv2 – Bugster

Смежные вопросы