Я хочу отправлять сообщения между процессами Ruby через TCP без использования конечных символов, которые могли бы ограничить потенциальное содержимое сообщения. Это исключает наивный socket.puts/получает подход. Есть ли базовая реализация TCP-сообщений где-то в стандартных библиотеках ?. (я бы хотел избежать Drb, чтобы все было просто.)Простой протокол обмена сообщениями TCP?
4
A
ответ
6
Кажется, что нет канонического решения многоразового использования.
Так вот базовая реализация для архивов:
module Messaging
# Assumes 'msg' is single-byte encoded
# and not larger than 4,3 GB ((2**(4*8)-1) bytes)
def dispatch(msg)
write([msg.length].pack('N') + msg)
end
def receive
if (message_size = read(4)) # sizeof (N)
message_size = message_size.unpack('N')[0]
read(message_size)
end
end
end
# usage
message_hub = TCPSocket.new('localhost', 1234).extend(Messaging)
1
Обычный способ отправки строк в этой ситуации - отправить целое число (закодированное, как вам нравится), для размера строки, за которым следует множество байт. Вы можете сэкономить место, но при этом допускать произвольные размеры, используя для этого целого числа схему, похожую на UTF-8.
Смежные вопросы
- 1. Какой протокол обмена сообщениями использовать?
- 2. Microsoft WCF - SOAP протокол обмена сообщениями
- 3. node.js тест простой протокол TCP
- 4. Простой клиентский сервер с помощью обмена сообщениями
- 5. .NET-проект для обмена сообщениями TCP
- 6. Простой пример обмена сообщениями с RabbitMQ
- 7. Дизайн таблиц для простой системы обмена сообщениями
- 8. Альтернатива оболочке обмена сообщениями «Layer» для обмена сообщениями iOS
- 9. Возможно ли использовать протокол FTP для обмена мгновенными сообщениями?
- 10. Протокол обмена сообщениями для управления микроконтроллером по UART
- 11. Как реализовать простой протокол TCP с использованием потоков Akka?
- 12. Ищете простой протокол обмена мгновенными сообщениями для собственного IM-сервера/службы в Java
- 13. Как создать службу обмена сообщениями?
- 14. Выбор решения для обмена сообщениями
- 15. JGroups UDP для членства, но TCP для обмена сообщениями?
- 16. Что лучше для обмена мгновенными сообщениями TCP или UDP?
- 17. Протокол Bittorrent Протокол TCP-связи
- 18. платформа обмена сообщениями (XMPP)
- 19. Платформа обмена сообщениями
- 20. кумулятивный шаблон обмена сообщениями
- 21. Служба обмена сообщениями UDP
- 22. Система обмена сообщениями PHP
- 23. Архитектура обмена сообщениями
- 24. Система обмена сообщениями Unity
- 25. Область обмена сообщениями ActiveMQ
- 26. Беседоподобная система обмена сообщениями
- 27. Отладка обмена сообщениями
- 28. PHP обмена мгновенными сообщениями
- 29. Cassandra для обмена сообщениями
- 30. Система обмена сообщениями/событий
Да, я знаю, и мне интересно, если есть каноническая библиотека, которая реализует такую procotol. –