Можно ли подключиться к разъему IO now.js?
Я использую 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 ответ
Да, это возможно.
У меня просто были проблемы с поиском подходящего объекта пользователя, содержащего его сокет. Оказывается, пользовательский объект передается как контекст, с которым вызываются события:
// 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
Я еще не проверял на разницу в производительности, так что часть вопроса все еще открыта...