API канала / отключение входящего сервиса не вызывается, когда вкладки закрыты в Chrome и FF - PullRequest
1 голос
/ 09 февраля 2012

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

Я полагаюсь на / отключаюсь для очистки временных объектов, созданных (сохраненных в хранилище данных) для определенного канала, поэтому у меня остаются все объекты OpenChannel, для которых / отключение никогда не вызывается.

Это происходит с Chrome и FireFox и никогда с IE.Я правильно использую API?Должно ли быть когда-либо одно сокетное соединение на окно браузера, а не на вкладку?(Если это так, то если мы сохраним токен в файле cookie, восстановим ли мы соединение с этим токеном? Разве это не считается как два соединения на один идентификатор клиента?

Спасибо.

1 Ответ

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

Если вы открываете более двух соединений с токеном, созданным с одним и тем же идентификатором клиента, поведение становится неопределенным.Поэтому, если вы используете, скажем, user.user_id () в качестве идентификатора клиента, и тот же пользователь открывает 3 вкладки, вы, вероятно, не получите обратный вызов / отключен для одной из этих вкладок, даже если вы создадите новые токены для каждойиз этих вкладок.

...