У меня очень хороший опыт работы с NodeJS и Socket.IO за последние 8 месяцев. Компонент на стороне сервера был очень стабильным для меня - я могу оставить его работающим с очень большим объемом сообщений, и его резидентная память никогда не сдвинется с места выше 20 МБ. До сих пор я мог оставить его работающим только около 4 недель без остановки сервера, но это было только потому, что мне нужно было обновить мой код на стороне сервера.
Безупречно работает в разных браузерах, используя веб-сокеты HTML5 или COMET, если они доступны. Выбор транспорта должен быть невидим для прикладного уровня. Мне плевать на древние браузеры (IE6)
Предоставляет метафору публикации/подписки с произвольными полезными нагрузками.
Socket.IO также является фантастическим программным обеспечением. Он находится в активной разработке и имеет простую абстракцию в стиле pub/sub, построенную с использованием семантики EventEmitter (NodeJS) «on» (подписка) и «emit» (публикация). Это также очень прозрачно на стороне клиента в отношении используемого транспорта. Я использовал его в основном для прямой поддержки WebSocket, но он может вернуться к сокетам на основе Flash, опросу xhr и опросу jsonp.
Клиентский доступ как из javascript, так и из серверных систем (т.е. в php/python/ruby) – это критично
NodeJS — это JavaScript, работающий на движке V8. Он имеет массу модулей сторонних производителей, которые обеспечивают хорошие абстракции, а также взаимодействуют с внешними компоненты, такие как базы данных или очереди сообщений, среди прочего. Что касается попадания в систему с помощью php/python/ruby, это будет работать так же, как и при попадании на любой другой сервер. Выберите свой метод связи (базовый TCP/IP, или, может быть, HTTP POST или GET, или даже через файловую систему), и NodeJS на самом деле не волнует, кто предоставляет данные. Лично я реализовал клиент C#, который отлично работает.
Позволяет клиентам видеть, какие другие клиенты подключены к каналу, т.е.
Он не имеет встроенной логики «присутствия», хотя со встроенной логикой «публикации/подписки», уже имеющейся в Socket.IO, все, что вам нужно сделать, это сохранить состояние на сервере, чтобы новые клиенты могли получить существующие данные о присутствии. Я реализовал свой собственный базовый pub/sub на сервере, который сохраняет состояние, и все вместе (включая серверный код NodeJS и основные заглушки Socket.IO) это было всего 50 строк JavaScript (включая пробелы).
Детализированный контроль доступа через обратные вызовы к любому веб-приложению (приятно иметь)
Не уверен, что вы подразумеваете под «Металлическим контролем доступа через обратные вызовы к любому веб-приложению (приятно иметь)». Метафора pub/sub event/observer, которую они используют, использует обратные вызовы, поэтому вы привязываете определенные действия к конкретным событиям.
Сделать авторизацию?
У меня пока не было необходимости выполнять какую-либо авторизацию для наших систем, поэтому я не могу говорить с ней напрямую. Однако, если вы просмотрите модули NodeJS, вы заметите, что доступно множество модулей аутентификации, включая LDAP и OAuth, не говоря уже о один модуль, который утверждает, что поддерживает OpenId, Google, OAuth, Twitter, LinkedIn, Yahoo, Readability, Dropbox, Justin.tv, Vimeo, Tumblr, OAuth2, Facebook, GitHub, Instagram, Foursquare, Box.net, LDAP
person
Matt
schedule
01.09.2011