Как реализовать обновления интерфейса в реальном времени, используя node.js + Ruby on Rails? - PullRequest
4 голосов
/ 14 мая 2010

Каков наилучший способ внедрения обновлений в реальном времени в ruby ​​на рельсах с помощью node.js? Было бы здорово услышать реальные примеры или ваши мысли об альтернативных решениях.

Ответы [ 3 ]

4 голосов
/ 08 июля 2010

Я использую узел для чата с приложением rails.

То, как я это делаю, это настройка внешнего интерфейса nginx, который проксирует мое Rails-приложение и мое приложение-узел.

Это позволяет вам обойти ту же политику происхождения и перекрестную связь.

Вот фрагмент моего nginx.conf

   location /chat_service {
      rewrite      /chat_service/(.+) /$1 break;
      proxy_pass http://localhost:9000/;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
    }

Это означает, что я могу рендерить html-страницы из моего приложения rails и взаимодействовать с приложением node без необходимости использовать отвратительные хаки, такие как JSONP.

Полный пример - выход за рамки этого ответа, но с хорошим прокси вы можете заставить их работать вместе счастливо.

0 голосов
/ 08 июля 2010

Боюсь, не все так просто ...

потому что мы получили такую ​​же политику происхождения в этом случае страница (отображаемая с помощью rails) и сервер обновлений (узел) должны находиться на одном сервере с портом

Я до сих пор не знаю, как это сделать.

0 голосов
/ 28 июня 2010

Способ сделать это можно с помощью Javascript Framework, как JQuery. После того, как rails отобразит представления и передаст html в браузер клиента, javascript может приступить к обработке обновлений и запросить информацию из node.js, поскольку узел может обрабатывать тысячи одновременных подключений.

Вы можете использовать этот метод для простых вызовов ajax или для создания более сложных кометных push-обновлений.

...