2013-07-23 2 views
3

В нашем проекте мы пытаемся понять, что лучший процесс для подключения к серверу будет - особенно когда позаботясь о оффлайновых/онлайн-сценариях и т. д.IBM Worklight - подключение/повторное подключение: WL.Client.connect vs. connectOnStartup vs. WL.Client.invokeProcedure

Прямо сейчас, для нас, похоже, все три варианта подключения к серверу WL аналогичны. Независимо от того, какой вариант мы используем, мы можем полностью вызывать наши процедуры адаптера, и мы получаем уведомления, установленные в консоли. Мы не уверены в прямом обновлении - это не работает должным образом.

Существуют ли какие-либо существенные различия между этими тремя способами подключения к серверу WL или в основном выполняется одна и та же процедура подключения во всех трех случаях?

Как насчет WL.Client.init() перед подключением - можно ли это снова вызвать (в дополнение к стандартной загрузке событий EventListener) в нашем коде, прежде чем мы подключимся с помощью WL.Client.connect вручную - или init (), который должен был называться только один раз?

Связанный с этим также не подключен и повторно подключается. Насколько я читал в учебниках, платформа WL Client управляет состоянием соединения. Означает ли это, что, когда клиент WL подключается к серверу с помощью любого из этих трех способов и теряет соединение WLAN/3G/4G (или это доступ к серверу WL из-за блокировки интернет-соединения или около того), он автоматически подключается автоматически (регулярно пытается повторно подключиться, пока не будет успешным), когда соединение с WL-сервером снова будет доступно?

EDIT

Я думал о событиях или Нити, которые обеспечивают более подробную информацию низкого уровня (не WORKLIGHT_IS_CONNECTED) - в основном события, которые будут сработавших, когда устройство теряет/получает WIFI/3G/4G-и/или интернет-соединение. Или доступен только опрос с использованием WL.Device.getNetworkInfo()?

ли использование Кордова Event как:

document.addEventListener("offline", yourCallbackFunction, false); 

обеспечивают функциональность, близкую к?

ответ

3

Хотя эти три способа имеют некоторое сходство, различия между ними очень важны.

WL.Client.init() Инициализирует структуру WL на стороне клиента.

WL.Client.connect() инициирует запрос на подключение к серверу WL.

initOptions.connectOnStartup определяет, будет ли автоматически вызываться WL.Client.connect() во время WL.Client.init().

В целом - большинство функций (например, адаптеры, дистанционное отключение) будут работать, даже если вы вызываете WL.Client.invokeProcedure() без звонка WL.Client.connect(). Но есть несколько вещей, которые не будут функционировать:

  1. Вы не сможете в полной мере использовать уведомление толчка без вызова WL.Client.connect()
  2. Прямого обновления запускаются при WL.Client.connect()
  3. WL.Client.connect() получите безопасность информацию, связанную с сервера, например имена сфер, независимо от того, аутентифицирован ли пользователь в этих сферах и т. д.Поэтому все API, такие как WL.Client.getUserInfo, .isAuthenticated(), .getUserName() и т. Д. Не работают.

Настоятельно рекомендуется начать сеанс с WL.Client.connect() (или initOptions.connectOnStartup=true).

+0

Благодарим вас за разъяснение! Может быть, у вас есть некоторые идеи по работе с автономным/без интернет-соединения? У WL есть какое-то встроенное управление для этого, или нам нужно обрабатывать все случаи (например, устройство теряет WIFI/3G/4G, устройство имеет WIFI/3G/4G, но не подключено к Интернету и т. Д.) С WL.Client.connect () звонки и т.д.? – christianmenkens

+0

Это может быть? http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v600/05_04_Working_offline.pdf –

+0

Спасибо. Мне жаль, что я не был достаточно ясен. Я знаю, что PDF, конечно, я редактировал Вопрос, чтобы включить более подробную информацию. Поскольку вы не указали дополнительную информацию о каком-либо автоматизме, я предполагаю, что у платформы WL Client нет активных потоков или подобных операций для повторного подключения или управления автономным или автономным состоянием самостоятельно? Все это управляет разработчик. – christianmenkens

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