Sonntag, Dezember 15, 2019

WebSockets oder eine alternative mit phonegap?

Wie kann ich senden Sie low-latency-Daten an einen server und zurück mit phonegap?

Bedenkt, dass ich keinen Zugriff auf php Dateien lokal, und haben Sie keine Erfahrung mit node.js oder WebSockets ich weiß nicht, welche ich verwenden soll.

InformationsquelleAutor maxhud | 2013-01-23

4 Kommentare

  1. 11

    WebSockets sind nicht nativ unterstützt von den Browsern in Android oder ältere Versionen von Cordova unter iOS, was bedeutet, dass Sie benötigen, um ein PhoneGap-plugin, wenn Sie wollen verwenden Sie diese auf dem client.

    Gibt es weitere Informationen unter: http://remysharp.com/2010/10/04/websockets-in-phonegap-projects/

    Allerdings bin ich mir nicht sicher (auch mit den plugins), wie belastbar WebSockets sind wahrscheinlich zu sein, wenn das Gerät bewegt sich zwischen den Netzwerk-verbindungen (WLAN -> 3G -> WLAN), also mit einem einfachen polling web service kann eine zuverlässigere option, wenn Ihre app muss weiterhin erhalten die Daten so, wie Ihre Nutzer bewegen.

    Wenn Sie brauchen, um Daten zu empfangen, initiiert durch den server, sollten Sie mithilfe von push-Benachrichtigungen statt: sowohl iOS (APN) und Android (C2DM) bieten APIs, die eine effizientere Verwendung der Batterie, als wenn Sie Ihre app-Umfrage Ihre server ständig.

    • Was würde passieren, wenn das Gerät geändert Anschlüsse und ich war mit einem websocket? Gibt es irgendeine Art von Veranstaltung, die ich behandeln könnte, wenn das passiert? … Wenn ich die push-Benachrichtigungen verwenden, was würde es benötigen, um die Integration der API in phonegap software? Ich habe fast keine Erfahrung im schreiben von code für die native-system, web-Entwicklung Sprachen.
    • es hängt davon ab, auf das WebSocket-Bibliothek (beachten Sie, hätten Sie ein plugin benutzen zu können, da Sie nicht nativ unterstützt). Meine Vermutung ist, dass in den meisten Fällen würden Sie die Verbindung beenden. Egal, ob Sie erkennen kann, das hängt von der Bibliothek API. Für push-Benachrichtigungen, die Sie benötigen, um ein PhoneGap-plugin. github.com/marknutter/GCM-Cordova – unterstützt Google Cloud Messaging; github.com/purplecabbage/phonegap-plugins/tree/master/iOS/… unterstützt Apple Push-Benachrichtigungen.
    • Beachten Sie, dass wenn Sie mit einem gehosteten build-service, wie PhoneGap Build oder Nomad für Visual Studio (disclosure: ich bin auf der Nomad-team), Sie werden wahrscheinlich nicht in der Lage sein, den Einsatz von nativen plugins wie die, die ich oben verwiesen. In diesem Fall werden Sie wahrscheinlich nur noch zum abrufen Ihrer web-Dienst in angemessener Höhe.
    • WebSockets nativ unterstützt, auf iOS in Safari. So, WebSockets arbeiten ‚out of the box‘ in PhoneGap für iOS.
    • Mein bad – aktualisiert.
    • WebSockets nicht unterstützt auf ALLEN Versionen von Safari auf iOS. Siehe hier: caniuse.com/websockets
    • Es ist ein PhoneGap-Build-plugin zu handhaben WebSockets auf Android: build.phonegap.com/plugins/478
    • Diese Antwort und die damit verbundenen Kommentare sind ziemlich alt und Websockets unterstützt werden von nahezu allen mobilen Browsern heutzutage (außer Opera Mini, wie von Jan 2017): caniuse.com/#search=websocket

  2. 4

    Können Sie WebSockets in PhoneGap für iOS und Android. WebSockets werden nativ unterstützt, auf iOS in Safari. Für Android benötigen Sie ein polyfill.

    Finden Sie unter: https://stackoverflow.com/a/13527585/39904

    Die Antwort oben bietet Informationen darüber, wie man eine WebSocket-Objekt zur Verfügung, im Android WebView verwendet PhoneGap und bietet auch einen link zu einem Beispiel-Projekt, das Sie verwenden können, um loszulegen.

    WebSockets wurden entwickelt, als eine Lösung zu ‚Comet‘ – hacks. Als solche bieten Sie eine sehr geringe Latenz-Lösung für Echtzeit-bi-direktionale Kommunikation zwischen einem client und einem server. Das bedeutet geringe Bandbreite und geringen Ressourcenverbrauch – Batterie für Mobilgeräte, da Sie halten eine einzelne Verbindung öffnen, statt öffnen und schließen mehrere HTTP-verbindungen. Eine polling-Lösung, die Anfragen in regelmäßigen Abständen ist wahrscheinlich die Batterie entladen viel schneller als eine WebSocket-Lösung. Wenn Sie polling bei geringeren Abständen, dann kann es in Ordnung sein – es hängt von Ihrem Anwendungsfall.

    In Bezug auf WebSockets arbeiten wie wechseln Sie zwischen dem Netzwerk und Netzwerk-Typ (WiFi -> 3G -> WLAN), dann, wenn Sie mit WebSockets nativ, die Sie brauchen, um festzustellen, die onclose und wieder verbinden. Sie müssen auch zu bestimmen, die beste Art der Verbindung; unsichere (WS) oder sichere (WSS). Ich würde empfehlen, WSS für mobile seit einigen mobilen Netzwerk-Anbieter nutzen transparente proxies, die sich mit WS-verbindungen. Dies klingt vielleicht kompliziert, aber es gibt eine Reihe von Bibliotheken, die übernehmen das für Sie. Wie die Pusher-JavaScript-Bibliothek (Hinweis: ich arbeite für Pusher). Bibliotheken wie diese auch Ausweichen auf einen weniger effizienten HTTP-basierten Lösung, wenn die Umwelt wird nicht zulassen, jede WebSocket-Verbindung auftreten.

    Siehe auch: Echtzeit-web-Technologie-Handbuch.

    Ich würde Zustimmen @rmc47, die Sie berücksichtigen sollten native push-Benachrichtigungen, wenn es für seltene single-Benachrichtigungen

  3. 0

    Unter diesem link zu sehen WebSocket-Unterstützung von Browsern und Geräten : html5test.com WebsiteiOS 4.2+ bereits unterstützt WebSocket

    Sehen dieser doc, die erklärt, wie die Entwicklung einer einfachen Anwendung mit WebSocket.

    Leider der Inhalt ist in portugiesischer (Brasilianischer) Sprache, aber Sie können Kommentare hinterlassen, die ich beantworte.

    • Ich werde die Entwicklung von android-apps zuerst also danke, aber das ist nicht ganz das, was ich bin lookin für
  4. 0

    Ich bin mir nicht sicher, was du meinst mit „Zugriff auf PHP-Dateien lokal“. Die Verwendung von node.js und web-sockets ist auch nicht gegenseitig ausschließen.

    Wenn Sie nicht aus einer Entscheidung, die auf der server-Implementierung Sie gehen konnte, entweder node.js oder ASP.NET.

    node.js hat eine gute Unterstützung für sockets mit Socket.io, die abstracts der client-Implementierung für Sie. So wird es mit WebSockets, wenn es Unterstützung, sonst wird wieder long polling.

    ASP.NET hat eine Bibliothek namens SignalR, die nicht etwas ähnliches für die .NET-Plattform.

Kostenlose Online-Tests

Ihre Entwicklerrolle