Node.js Материал в реальном времени с DNode/ башмаком и все о балансировке нагрузки
Я создал небольшую систему, которая использует dnode, shoe и browserify на клиенте, а также NodeJS и dnode/shoe на стороне сервера. Мне интересно, стоит ли использовать dnode (RPC) в качестве единственного протокола для веб-приложения реального времени.
Давайте посмотрим на преимущества DNode или любого другого интерфейса RPC. Мне нравится возможность удаленного вызова функций (RPC). Он определенно превосходит Ajax, потому что вы получаете непротиворечивый интерфейс для связи от клиента к серверу и от сервера к клиенту. Я также держу пари, что вы получаете небольшой показатель производительности по сравнению с Ajax из-за накладных расходов HTTP, связанных с Ajax.
Однако, используя RPC, вам приходится иметь дело с балансировкой нагрузки и клиентскими подключениями на сервере. Но это относится к любой реализации websocket. Но с другой реализацией websocket у вас есть более традиционная система, основанная на событиях, где клиент слушает события с сервера и отвечает на эти события. Я попытался воспроизвести такой интерфейс с помощью EventEmitters, но это ужасно, и я продолжаю получать предупреждения о слишком большом количестве обработчиков. Тьфу!
Я стремлюсь к созданию легкого, чистого интерфейса, который я мог бы использовать для разработки своего приложения. Тот, который чувствует себя надежным и способен масштабироваться для многих клиентов. Это должно чувствовать себя твердым.
Я не совсем уверен, что мой вопрос в написании этого поста. Мне поручено обновить эту кодовую базу, которую я написал, чтобы соединения не терялись и в целом она была более надежной. Я думаю, я просто отчаянно нуждаюсь в совете или консультации с моим заявлением. Есть ли кто-то, кто хочет поговорить со мной лицом к лицу на эту тему (RPC и веб-приложения в реальном времени)?
Спасибо за прочтение.
1 ответ
Я изучал некоторые из тех же самых тем, которые мне показались, что некоторые из RPC-библиотек были очень круты, но не совсем практичны для крупномасштабных приложений. На самом деле я начал с NowJS, понял, что это мертвый проект, перешел на DNode/Shoe/Browserify и, наконец, перешел на SocketStream в попытке переложить часть грязной работы на проект, имеющий единую цель. Я действительно не хотел переписывать то, что другие уже сделали по этому вопросу, и Socketstream делает это легко. Чтобы вернуться к вашему вопросу, как вы можете видеть на их странице, SocketStream использует липкие сессии. Это большое предположение, но, вероятно, сейчас его невозможно обойти без дальнейших разработок. Причина, по которой я упоминаю это, заключается в том, что они говорят о некоторых вещах, над которыми они работают, что касается масштабирования. Возможно, нам стоит почитать или обратиться к разработчику, чтобы узнать, не могли бы вы обсудить его с ним. Удачи!