2011-02-03 2 views
6

Im, использующий socketio/node, чтобы выкачать некоторые напуганные данные в браузер, все стандартные вещи. Я использую последние версии обеих библиотек. Теперь, я имею пару вопросов с этим:SocketIO + Node - Восстановление потерянных подключений

1) Предупреждающие сообщения в журнале узла:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. 
Trace: 
    at CleartextStream.<anonymous> (events.js:101:17) 
    at [object Object].<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/client.js:83:20) 
    at [object Object]._onConnect (/var/www/lib/other/Socket.IO/lib/socket.io/transports/xhr-polling.js:23:35) 
    at [object Object].check (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:77:12) 
    at Server.<anonymous> (/var/www/lib/other/Socket.IO/lib/socket.io/listener.js:33:14) 
    at Server.emit (events.js:45:17) 
    at HTTPParser.onIncoming (http.js:904:12) 
    at HTTPParser.onHeadersComplete (http.js:87:31) 
    at CleartextStream.ondata (http.js:820:22) 
    at CleartextStream._blow (tls.js:228:29) 

Это является примером предупреждения XHR, который я могу любопытное понять, как природа XHR - это несколько соединений/разъединений. Однако, когда у меня довольно много клиентов, связанных другими транспортом, я получаю то же самое.

2) Случайное подключение отключается. По какой-то необъяснимой причине соединения случайно выпадают. Это не машина или браузер или даже транспорт. Соединение в браузере просто случайно перестанет получать обновления. В журналах узлов нет конкретного сообщения об отключении, и обновление вручную браузера устраняет проблему.

Итак, что им интересно - эти два вопроса связаны, или отдельные вопросы? Испытывали ли вы эти недостатки связи? Если да, то как вам удалось их решить? Его довольно расстраивает, так как он настолько близок к тому, чтобы быть на 100% идеальным. Я хотел бы чувствовать себя тепло и уютно, зная, что все клиенты, просматривающие страницы моего приложения, получат согласованные обновления в течение нескольких часов, даже если они захотят.

Ваша помощь и советы очень ценятся!

Приветствия,

Пит

+0

какая версия socket.io и узла вы используете? –

+0

Я использую socket.io и испытал, казалось бы, случайные разъединения. Хотел бы я пролить больше света, но я просто не знаю, почему это происходит. Много идет, что говорят пользователи, потому что его трудно воспроизвести. – mikeycgto

ответ

3

Я хотел бы я имел твердый ответ для вас, сэр, но я могу по крайней мере предоставить вам с проверкой здравомыслия.

Я уже несколько недель возился с библиотекой, и я видел эту точную ошибку и дополнительные ошибки, при которых невозможно сохранить соединение в сети (в браузерах, которые поддерживают технологию естественно), случайные идентификатор сеанса. В общем, ust ничего не работает надежно.

Справедливости ради, это бесплатно и все еще в бета-версии, так что у вас есть это.

Socket.io - одна библиотека багги.

+4

у него есть некоторые причуды, но назвать его багги-библиотекой - это немного преувеличение, если вы спросите меня. Я призываю вас написать лучшую библиотеку или развить ее и исправить, если вы считаете, что можете сделать лучшую работу ... – Alfred

+1

@Alfred Право, я также считаю, что это преувеличение. – XMen

+0

My 2c: может быть, не «багги» (это неприятное слово), но негабаритный, может быть, да. – Merc

1

Ну, у меня есть часть ответа. По словам Гильермо Рауча (создателя socket.io), эта ошибка на самом деле не является утечкой памяти, потому что при полном отключении она будет очищена. Вот link в список рассылки, который объясняет это.

Так что маловероятно, что эти две проблемы связаны. Я также испытываю предупреждающее сообщение, но у меня не было проблемы со случайными выпадами.

+1

Как упоминалось в потоке, первая проблема должна быть исправлена. Помимо этого, Socket.IO до сих пор обслуживает нас.Я не видел связи, которые я не мог отнести к flaky link. –

Смежные вопросы