Мы разрабатываем сервер DDP на языке C (не спрашивайте, почему - нам просто нужно). Мы заметили, что Meteor использует SockJS для реализации протокола DDP. Хотя есть библиотеки, которые позволяют мне делать веб-сокеты в C, я не нашел никаких библиотек SockJS для C.DDP-сервер в C
Библиотека SockJS кажется довольно обширной, и поскольку нет спецификации того, как она работает, это звучит как очень хрупкий подход, чтобы попытаться изменить свои трюки.
Это заставило меня подумать, какие лучшие стратегии помогут нам поддерживать DDP. Есть несколько вариантов, я могу думать:
- я мог бы импортировать двигатель V8 и использовать его, чтобы соединить между C++ и реализации JavaScript (который я тогда мог выставить С относительно легко)
- я мог бы использовать SockJS библиотеку X для языка Y и использовать Python/C/JNI/... для взаимодействия с этим
- Возможно, я мог бы заставить Meteor использовать только веб-сокеты (DDP-документы, похоже, предполагают, что это возможно, но я не мог понять как).
Вариант 3, если вообще возможно, будет наименьшим усилием, но наследует проблемы с помощью WebSockets (совместимость с браузером, корпоративные брандмауэры и т. Д.).
Варианты 1 и 2 осуществимы, но размер библиотеки, которую я должен включить, чувствует несоразмерность функциональности, которую я буду использовать.
Учитывая вышеизложенное, похоже, что это не идеальное решение. Однако я хотел бы подтвердить обоснованность вышеуказанных вариантов и узнать, пропустил ли я что-то. Кроме того, если кто-то пробовал это раньше, я хотел бы услышать об этом.
ДДП кнопку [Distributed данных протокола] (https://en.wikipedia.org/wiki/Distributed_Data_Protocol), ДДП кнопку [ Протокол передачи дейтаграмм] (https://en.wikipedia.org/wiki/Datagram_Delivery_Protocol) или какой-либо другой DDP? – duskwuff
как насчет этого для начала? http://stackoverflow.com/questions/27224164/etablish-ddp-connection-between-meteor-server-and-c-app –
JD_GRINDER - Я заметил этот вопрос, обратите внимание, что это касается клиента DDP, а не сервера. Однако он предполагает, что реализация DDP Meteor поддерживает только веб-сокет, с точки зрения клиента. Я хотел бы понять, может ли библиотека JS Meteor Client работать с сервером, который может предоставлять только сетевые сокеты. –