2012-06-06 3 views
1

Я заметил, что каждый createchannel() заменяет URL-адрес iFrame.Channel API - иногда я не получаю сообщение

Есть ли вероятность, что из-за повторного вызова createChannel() мой iFrame заменяется новым iFrame, но привязка между идентификатором clientID и URL-адресом iFrame не обновлялась?

Например: Я назвал «channel.create_channel (unique_id)» - и я вернул JS с 123.talkgadget.google .... как iFrame. Затем Я снова позвонил с тем же идентификатором клиента «channel.create_channel (unique_id)» - и я вернул JS с 456.talkgadget.google .... как iFrame.

Есть ли шанс, что если я буду называть сейчас «channel.send_message (unique_id, сбщ)» сообщение будет отправлено 123.talkgadget.google вместо 456.talkgadget.google в результате, что я не получил сообщение?

Спасибо!

ответ

0

Я не уверен на 100% об этом ответе. Я не тестировал полностью, это немного сложно проверить, так как поведение dev_appserver сильно отличается от реального поведения сервера.

Я считаю, что видел это поведение раньше (недостающие сообщения).

Если вы закрываете старый канал со стороны клиента, кажется, что все работает правильно.

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

+0

спасибо. Что значит закрыть старый канал? var iframe = document.getElementById ('wcs-iframe'); \t if (iframe! = Null) \t \t {// alert ('-'); \t \t \t iframe.parentNode.removeChild (iframe); \t \t} \t \t socket.close(); Не помогает ... –

+0

Я имел в виду просто вызов socket.close(), вам не нужно касаться iframe. – dragonx

+0

это не помогает /: все еще иногда я не получаю сообщения. –