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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
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.
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
Unter diesem link zu sehen WebSocket-Unterstützung von Browsern und Geräten : html5test.com Website - iOS 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 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.