WebSockets для Android в приложении Phonegap с сервером и клиентом Node.js / Socket.IO - PullRequest
9 голосов
/ 29 января 2012

Я делаю приложение для Android в PhoneGap.То, что я пытаюсь сделать, это позволить приложению общаться с моим сервером Node.js через WebSockets.Мой сервер Node.js использует Socket.IO, который автоматически возвращается к опросу, когда я открываю приложение, в отличие от настольного приложения Chrome, которое с радостью открывает WebSocket и просто через него общается.прочитайте этот пост об интеграции реального API WebSocket с PhoneGap.Проблема в том, что я не переопределяю функции onConnect, onMessage вручную, вместо этого Socket.IO делает все это за меня.

Есть ли способ интегрировать WebSockets в мое приложение Android Phonegap?

Ответы [ 4 ]

5 голосов
/ 01 марта 2013

Краткий ответ: Cordova WebView не поддерживает WebSockets и socket.io не подключается к стандартным клиентам WebSocket .

Для вашего клиента:По-прежнему кажется, что если вы хотите настоящие веб-сокеты, вам нужно использовать плагин Cordova, который специфичен для сборки Android или сборки iOS.Попробуйте этот поиск , который включает в себя репозиторий anismiles для плагина Android, того же блоггера, на который ссылается OP.

Таким образом, socket.io не будет работать на вашем сервере.К сожалению, сервер socket.io не поддерживает подключение к клиентам с помощью подключения веб-сокетов на основе стандартов Html5, вам необходимо использовать их клиентскую библиотеку.Как вы уже видели, вы не можете использовать их клиентскую библиотеку в Cordova ... ну, вы можете, это просто возврат к опросу.

Так что теперь ваш клиент веб-сокета является стандартным плагином Cordova,вам нужен сервер, который поддерживает основанное на стандартах соединение веб-сокетов.Вы должны взглянуть на SockJs , Worlize , Миксаго или Einaros .Есть и другие.В настоящее время я использую Worlize.

Еще одна вещь, которую нужно иметь в виду, это то, что существует небольшой список облачных хостов, в настоящее время поддерживающих настоящие соединения с веб-сокетами.Я рекомендую DotCloud или Nodejitsu .

Если это ответ на ваш вопрос, пожалуйста, нажмите на галочку:)

2 голосов
/ 04 февраля 2014

Обновляя ответы, этот плагин работает с socket.io, и его гораздо проще использовать (только PhoneGap 3.x).

https://github.com/mkuklis/phonegap-websocket

0 голосов
/ 05 июня 2012

Вот еще один Android-клиент websockets, который я сейчас оцениваю.

http://jwebsocket.org/mobile/android/android_part1.htm

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

Phonegap должен позволять вам включать внешнюю библиотеку Java в ваш проект, и вам нужно будет создать для нее интерфейс в Java.

0 голосов
/ 30 января 2012

Этот репозиторий будет очень скоро интегрирован в phonegap (по крайней мере, он звучит так же, как в файле readme)

Он также предоставляет шаги для работы веб-сокетов в phonegap / android.* Взгляните: https://github.com/anismiles/websocket-android-phonegap

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...