Можно ли подключиться к сокету IO now.js? - PullRequest
2 голосов
/ 05 февраля 2012

Я использую NowJS, но думаю, что Socket.IO может быть более эффективным для сообщений с очень высокой частотой (возможно, с меньшими издержками, чем вызов функции nowjs).

Я задавался вопросом, можно ли было «взломать» уже установленный сейчас сокет ввода-вывода и мультиплексировать с ним, надеясь на разумное сравнение двух.

Я попробовал следующее:

// On the server
user.socket.on("my_update", receiveUpdate);

// On the client
now.core.socketio.emit("my_update", { hello: "world" } );

но серверное событие не было инициировано.

Мой вопрос: Как я могу использовать сокет io, который использует NowJS? Или я не могу?

Что касается дополнительных очков, насколько быстрее использовать socket.io emit (), чем вызов функции, передаваемой через NowJS?

1 Ответ

1 голос
/ 14 февраля 2012

Да, это возможно.

Мне просто не удалось найти нужный объект пользователя, содержащий его сокет.Оказывается, пользовательский объект передается в качестве контекста, с которым вызываются события:

// On the server
nowjs.on("connect", function(){
  this.socket.on("my_update", receiveUpdate);
  // ( user === this )
});

Сообщения, отправляемые через сокет, похоже, отлично чередуются с сообщениями из самого Now.

Для чего этоСтоит, я собрал список существующих сообщений emit из источника NowJS.Их следует считать зарезервированными именами событий!

connect, del, disconnect, groupdel, grouprv, join, leave, multicall, newgroup,
rd, removegroup, rfc, rv

Я еще не проверял на разницу в производительности, так что часть вопроса все еще открыта ...

...