Мне нужно создать одноплатформенное однопользовательское приложение (по крайней мере, поддержку iOS & Android). Для этого я использую Кордову. В настоящее время я могу выполнить обнаружение сервисов с помощью плагина ZeroConf. Теперь Я хотел бы сделать одноранговое соединение при обнаружении.Кордовое одноранговое приложение с использованием webRTC
Эквивалентное приложение уже создано с использованием Titanium. После обнаружения он использует сокеты для подключения к обнаруженной машине.
/*
Service Discovery resulting in an IP address and port number
...
*/
socket = Titanium.Network.createTCPSocket({
hostName: discoveredHostName,
port: discoveredPort,
mode: Titanium.Network.READ_WRITE_MODE
});
...
socket.connect();
Однако мне нужно перевести приложение в Кордова, поэтому я буду нужна альтернатива для тех сокетов, используемых в версии Titanium. Использование промежуточного сервера не является опцией (только для сигнализации может использоваться, а не для обмена сообщениями).
Мой наставник посоветовал использовать webRTC, поскольку это простой стандартный Javascript API, упоминающий, что он работает на iOS, ссылаясь на official website which metions iOS support. Я реализовал его, тестируя его в браузере, и он работает как шарм.
Однако при тестировании его на IOS WebRTC не работает:
var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection || window.msRTCPeerConnection;
Это работает в браузере, но прошивкой это приводит к RTCPeerConnection
быть undefined
. Я предполагаю, что у меня что-то не хватает, поскольку на официальном сайте упоминается поддержка iOS?
Хорошо, вот что я думал, спасибо! Определенно это не облегчит .. Я видел плагин WebRTC для Кордовы, попробует. Существует ли какой-либо плагин webRTC, совместимый с iOS, а также Android? На стороне примечания: Это означает, что нельзя использовать webRTC с возможностью взаимодействия между iOS, Android и ПК? (Это выходит за рамки моей задачи, кроме чистого любопытства). Это плагин, о котором я говорю: https://www.npmjs.com/package/cordova-plugin-webrtc – HyperZ
Лично я разработал приложение Cordova/Ionic, используя версию Crosswalk для Android, и используя cordova-plugin-iosrtc для iOS. Существует несколько плагинов Cordova WebRTC, но у каждого из них есть ограничение. Благодаря WebRTC возможно взаимодействие между различными устройствами на разных платформах: мои приложения (веб, Android и iOS) успешно взаимодействуют между собой. – beaver
Проблема заключается в том, что мне придется интегрировать мою работу в большой проект, идея состоит в том, что впоследствии весь проект не привязан к Кордове (или Ионной), но может быть запущен с использованием версии Titanium или версии Cordova сетевой части.Я боюсь, что сделаю весь проект привязанным к Кордове, поэтому, поскольку мне нужно только отправлять текст, простой плагин (идеально совместимый с iOS и Android), обеспечивающий канал передачи данных, был бы приятным, но, похоже, не существует , – HyperZ