общение с socket.io с Android

Краткое описание проблемы

Я пытаюсь связать простой сокет .io chat app в родное приложение для работы на Android 2.2 и выше с помощью phonegap

веб-клиент socket.io --> работает сервер socket.io

У меня есть простой сервер, на котором работает socket.io, который успешно взаимодействует с клиент socket.io при запуске в веб-браузере

мобильный клиент socket.io в мобильном браузере --> сервер socket.io работает

Обратите внимание на это , поскольку веб-сокеты не поддерживаются в Android 2.2по умолчанию б ack to xhr polling, примеры сообщений с сервера при подключении через веб-браузер на Android 2.2

[root@webnode-2 nodechat]# узел server.js
информация - socket.io запущен
отладка - клиент авторизован
информация - рукопожатие разрешено 6036976111002307981
debug - установка запроса GET /socket.io/1/xhr-опрос/6036976111002307981?t=1332184313758
отладка - установка тайм-аута опроса
отладка - клиент авторизован для
отладка - очистка тайм-аута опроса
отладка - запись xhr-опроса 1::
отладка - установить время ожидания закрытия для клиента 6036976111002307981
6036976111002307981
отладка - запрос настройки GET /socket.io/1/xhr-polling/6036976111002307981?t=1332184313839
отладка - установка тайм-аута опроса
отладка - очистка тайм-аута опроса
debug - запись xhr-опроса 5:::{"name":"message","args":["Добро пожаловать, незнакомец!"]}
отладка - установить время ожидания закрытия для клиента 6036976111002307981
отладка - отбрасывание транспорта
отладка - убран тайм-аут закрытия для клиента 6036976111002307981
отладка - запрос настройки GET /socket.io/1/xhr-polling/6036976111002307981?t=1332184313928
отладка - установка тайм-аута опроса
отладка - отбрасывание транспорта
отладка - убран тайм-аут закрытия для клиента 6036976111002307981
отладка - очистка тайм-аута опроса
отладка - запись xhr-опроса 8::
отладка - установить время ожидания закрытия для клиента 6036976111002307981
отладка - xhr-опрос закрыт из-за превышения продолжительности
отладка - запрос настройки GET /socket.io/1/xhr-polling/6036976111002307981?t=1332184334139
отладка - установка тайм-аута опроса
отладка - отбрасывание транспорта
отладка - убран тайм-аут закрытия для клиента 6036976111002307981
debug - xhr-опрос полученного пакета данных 5:::{"name":"connect_friends","args":[{"user_id":"2","friends_list":[1,2,3,4,5, 6,7,8,9,10]}]}


РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЯ


{ user_id: '2', список друзей: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] } 10 назначенный user_id: 2 для сокета 6036976111002307981

socket.io из phonegap --> socket.io server терпит неудачу

Однако, когда я пытаюсь соединиться с socket.io в phonegap, соединение открывается, но быстро закрывается.

В журнале Android есть ошибка о том, что требуется flash player > v10, но на моем телефоне установлен flash player v 11.1.

03-19 11:38:46.847: I/PhoneGapLog(18469): найден уровень журнала DEBUG
03-19 11:38:46.847: I/PhoneGapLog(18469): изменение уровня журнала на DEBUG(3)
03-19 11:38:46.847: D/DroidGap(18469): DroidGap.onCreate()
03-19 11:38:46.847: D/DroidGap(18469): DroidGap.loadUrl(file:///android_asset/www/index.html)
03-19 11:38:46.847: D/DroidGap(18469): DroidGap: url=file:///android_asset/www/index.html baseUrl=file:///android_asset/www/
03-19 11:38:46.847: D/DroidGap(18469): DroidGap.init()
03-19 11:38:46.941: D/dalvikvm(18469): GC_FOR_MALLOC освободил 6234 объекта/618952 байта за 68 мс
03-19 11:38:46.968: D/SoftKeyboardDetect(18469): игнорировать это событие
03-19 11:38:47.007: D/SoftKeyboardDetect(18469): игнорировать это событие
03-19 11:38:47.058: D/SoftKeyboardDetect(18469): игнорировать это событие

03-19 11:38:47.241: D/PhoneGapLog(18469): требуется Flash Player >= 10.0.0. 03-19 11:38:47.241: D/PhoneGapLog(18469): файл:///android_asset/www/js/socket.io/socket.io.js: строка 2622: требуется Flash Player >= 10.0.0. 03-19 11:38:47.241: Электронная/веб-консоль (18469): Требуется Flash Player >= 10.0.0. в файле:///android_asset/www/js/socket.io/socket.io.js:2622

03-19 11:38:47.796: D/PhoneGapLog(18469): Получение Добро пожаловать, незнакомец! 03-19 11:38:47.796: D/PhoneGapLog(18469): file:///android_asset/www/index.html: Строка 8: Прием Добро пожаловать, незнакомец! 03-19 11:38:47.796: I/веб-консоль(18469): Прием Добро пожаловать, незнакомец! в файле:///android_asset/www/index.html:8 03-19 11:39:07.007: E/DroidGap(18469): DroidGap: ОШИБКА ВРЕМЕНИ! - вызов webViewClient 03-19 11:39:07.007: D/Cordova(18469): DroidGap: GapViewClient.onReceivedError: Код ошибки=-6 Описание=Не удалось подключиться к серверу. URL=файл:///android_asset/www/index.html 03-19 11:39:07.167: D/SoftKeyboardDetect(18469): игнорировать это событие 03-19 11:39:16.323: D/dalvikvm(18469): GC_EXPLICIT освободил 6130 объектов/505920 байт за 156 мс

Журнал событий на сервере

[root@webnode-2 nodechat]# узел server.js
информация - socket.io запущен
отладка - клиент авторизован
информация - рукопожатие разрешено 1009349893764580916
отладка - запрос настройки GET /socket.io/1/xhr-polling/1009349893764580916?t=1332182327502
отладка - установка тайм-аута опроса
отладка - клиент авторизован для
отладка - очистка тайм-аута опроса
отладка - запись xhr-опроса 1::
debug - установить тайм-аут закрытия для клиента 1009349893764580916
отладка - запрос настройки GET /socket.io/1/xhr-polling/1009349893764580916?t=1332182327602
отладка - установка тайм-аута опроса
отладка - очистка тайм-аута опроса
debug - запись xhr-опроса 5:::{"name":"message","args":["Добро пожаловать, незнакомец!"]}
debug - установить тайм-аут закрытия для клиента 1009349893764580916
отладка - отбрасывание транспорта
отладка - убран тайм-аут закрытия для клиента 1009349893764580916
отладка - запрос настройки GET /socket.io/1/xhr-polling/1009349893764580916?t=1332182327802
отладка - установка тайм-аута опроса
отладка - отбрасывание транспорта
отладка - убран тайм-аут закрытия для клиента 1009349893764580916
отладка - очистка тайм-аута опроса
информация - конец транспорта
debug - установить тайм-аут закрытия для клиента 1009349893764580916
отладка - сброшен тайм-аут закрытия для клиента 1009349893764580916


DISCONNECTED EVENT


отладка - отбрасывание транспорта отладка - клиент авторизован информация - рукопожатие разрешено 2044675477593417130 debug - установка запроса GET /socket.io/1/xhr-опрос/2044675477593417130?t=1332182347938 отладка - установка тайм-аута опроса отладка - клиент авторизован для отладка - очистка тайм-аута опроса отладка - запись xhr-опроса 1:: debug - установить тайм-аут закрытия для клиента 2044675477593417130 debug - установка запроса GET /socket.io/1/xhr-polling/2044675477593417130?t=1332182348112 отладка - установка тайм-аута опроса отладка - очистка тайм-аута опроса debug - запись xhr-опроса 5:::{"name":"message","args":["Добро пожаловать, незнакомец!"]} debug - установить тайм-аут закрытия для клиента 2044675477593417130 отладка - отбрасывание транспорта отладка - убран тайм-аут закрытия для клиента 2044675477593417130 debug - установка запроса GET /socket.io/1/xhr-polling/2044675477593417130?t=1332182348308 отладка - установка тайм-аута опроса отладка - отбрасывание транспорта отладка - убран тайм-аут закрытия для клиента 2044675477593417130 отладка - очистка тайм-аута опроса информация - конец транспорта debug - установить тайм-аут закрытия для клиента 2044675477593417130 отладка — сброшен тайм-аут закрытия для клиента 2044675477593417130


DISCONNECTED EVENT


отладка — отбрасывание транспорта

Сообщение от сервера "Добро пожаловать, незнакомец!" принимает телефон. На телефоне диалоговое окно с сообщением «Ошибка приложения», «Не удалось подключиться к серверу». (file:///android_asset/www/index.html)

клиент веб-сокетов телефонного разрыва -> сервер socket.io выходит из строя

Затем я прочитал, что веб-сокеты еще не поддерживаются в телефонной связи, и наткнулся на этот проект для поддержки WebSocket в Android-приложениях Phonegap. Когда я запустил это и попытался подключиться к сокету.io сервер и я получил ошибку

[root@webnode-2 nodechat]# узел server.js
информация - socket.io запущен
debug - удаление обновления без socket.io
 

, что, как я полагаю, связано с попыткой подключиться к серверу socket.io с использованием веб-сокетов без использования клиента jssocket.io. Я протестировал его только с сервером node.js, и он работал

Вопросы

  1. Есть ли способ сообщить socket.io о веб-сокете, созданном с использованием поддержки WebSocket в приложениях Android Phonegap?
  2. Почему время ожидания опроса xhr истекло?
9
задан Community 23 May 2017 в 12:09
поделиться