Будет ли перекручиваться поддержка прослушивания на нескольких портах с разными «обработчиками» (разным набором обратных вызовов для каждого порта) одновременно? По сути, я хочу, чтобы мой процесс размещал два сервера в одном процессе, каждый из которых выполнял другую функцию. Должен ли я использовать два реактора для этого?Скрученные с несколькими портами, протоколами и реакторами
1
A
ответ
2
Да, например, изменяющей quote server example вы могли бы добавить второй экземпляр прослушивает другой порт, с другой цитатой:
from twisted.internet.protocol import Factory, Protocol
from twisted.internet.endpoints import TCP4ServerEndpoint
from twisted.internet import reactor
class QOTD(Protocol):
def connectionMade(self):
# self.factory was set by the factory's default buildProtocol:
self.transport.write(self.factory.quote + '\r\n')
self.transport.loseConnection()
class QOTDFactory(Factory):
# This will be used by the default buildProtocol to create new protocols:
protocol = QOTD
def __init__(self, quote=None):
self.quote = quote or 'An apple a day keeps the doctor away'
endpoint = TCP4ServerEndpoint(reactor, 8007)
endpoint.listen(QOTDFactory("configurable quote"))
endpoint2 = TCP4ServerEndpoint(reactor, 8008)
endpoint2.listen(QOTDFactory("another configurable quote"))
reactor.run()
Выход:
$ nc localhost 8007
configurable quote
$ nc localhost 8008
another configurable quote
Смежные вопросы
- 1. Скрученные несколько протоколов
- 2. Докер с несколькими открытыми портами
- 3. Swift свойству в соответствии с несколькими протоколами
- 4. Прокси-сервер Kubernetes с несколькими портами
- 5. Контейнер для докеров с несколькими настраиваемыми портами
- 6. Расширение Chrome - Сообщения с несколькими портами
- 7. kubernetes loadbalancer с несколькими внутренними портами
- 8. Таблица MySQL с уникальными серверами и несколькими портами
- 9. Сайт Nginx Rails и пассажир с несколькими портами
- 10. Как вести журнал с помощью Log4Net с несколькими протоколами и несколькими файлами конфигурации?
- 11. Служить несколькими портами от Google App Engine
- 12. wireshark development: Регистрация эвристической функции с несколькими протоколами в Lua
- 13. Как масштабировать приложение с несколькими открытыми портами и несколькими томами, смонтированными с помощью докеры?
- 14. Python Скрученные и соединения с базой данных
- 15. скрученные имена и записи srv
- 16. Разница между сообщениями-ориентированными протоколами и потоковыми протоколами
- 17. Biztalk Заказываемая доставка напрямую связана с несколькими портами
- 18. Сегмент конвейера C++ с несколькими выходными портами - соответствие типа
- 19. Проблема с генериками и протоколами Swift
- 20. Как связать интерфейс с несколькими портами без дублирующего кода?
- 21. Использование LineReciever с протоколами Twisted Process
- 22. Сервлеты с различными портами
- 23. Передача данных с делегатами/протоколами
- 24. XAMPP: проблемы с портами
- 25. Clojure новичок, борющийся с протоколами
- 26. Lein компиляции проекта с протоколами
- 27. Как отформатировать скрученные журналы?
- 28. облетели скрученные проблемы установки
- 29. как работают скрученные/торнадо и так далее
- 30. Скрученные, FTP и «потоковые» большие файлы
Удивительный ответ. Как насчет того, хотел ли я добавить что-то еще, например, скрученный WebSocket. Могу ли я сделать это вместе с ними? –
@horsehair Я не пробовал, но он должен работать нормально. Реактор в основном проверяет каждый сокет и отправляет данные в соответствующий протокол, когда он поступит. Вы используете http://autobahn.ws/? –
Я пытаюсь определить, следует ли использовать autobahn.ws, но я начинал думать, что у Twister были встроенные функции, которые сделали использование autobahn в дополнение к этому избыточным. Для простого WebSocket, который просто передает сообщения, по крайней мере. Нет? –