2013-01-23 2 views
8

대기 시간이 짧은 데이터를 서버로 보내고 phonegap으로 다시 보낼 수있는 방법은 무엇입니까?WebSockets 또는 phonegap으로 대체 할 수 있습니까?

로컬로 php 파일에 액세스 할 수 없다고 생각하고 node.js 또는 WebSocket에 대한 경험이 없으므로 어느 것을 사용해야하는지 잘 모릅니다.

답변

11

웹 소켓은 기본적으로 Android의 브라우저 또는 older versions of Cordova under iOS에서 지원되지 않으므로 클라이언트에서 사용하려는 경우 PhoneGap 플러그인을 사용해야합니다. 더 많은 정보가에있다

그러나 http://remysharp.com/2010/10/04/websockets-in-phonegap-projects/

, 내가 될 가능성이 얼마나 탄력 WebSocket을 (심지어 플러그인) 잘 모르겠어요 때 네트워크 연결 사이에 장치 이동 (와이파이 -> 3G -> 무선) 따라서 간단한 폴링 웹 서비스를 사용하면 사용자가 이동할 때 앱에서 계속 데이터를 받아야하는 경우 더 신뢰할 수있는 옵션이 될 수 있습니다.

서버에서 시작한 데이터를 수신해야하는 경우 푸시 알림을 사용하는 것이 좋습니다. iOS (APN)와 Android (C2DM) 모두 앱을 사용하여 배터리를 더 효율적으로 사용하도록 API를 제공합니다. 서버.

+0

은 어떤 일이 일어날 드문 단일 알림의 경우

난 당신이 네이티브 푸시 알림을 고려해야 @ rmc47에 동의 것? 어떤 일이 발생하면 처리 할 수 ​​있습니까? ... 푸시 알림을 사용하려면 API를 phonegap 소프트웨어에 통합해야합니다. 네이티브 시스템에 대한 코드 작성 경험이 거의 없으며 웹 개발 언어 만 제공합니다. – maxhud

+0

@maxhud : WebSocket 라이브러리에 따라 다릅니다 (기본적으로 지원되지 않으므로 플러그인을 사용해야한다는 것을 기억하십시오). 내 생각에 대부분의 경우 연결을 종료합니다. 도서관의 API에 의존하는 것을 탐지 할 수 있는지 여부. 푸시 알림의 경우 PhoneGap 플러그인을 사용해야합니다. https://github.com/marknutter/GCM-Cordova는 Google의 클라우드 메시징을 지원합니다. https://github.com/purplecabbage/phonegap-plugins/tree/master/iOS/PushNotification은 Apple Push Notifications를 지원합니다. – rmc47

+0

@maxhud ... 계속 : PhoneGap Build 또는 Visual Studio 용 유목민 (노출 : 유목민 팀에 있음)과 같은 호스팅 된 빌드 서비스를 사용하는 경우, 위에서 언급 한 것과 같은 기본 플러그인. 이 경우 적절한 비율로 웹 서비스를 폴링하면됩니다. – rmc47

0

이 브라우저 및 장치에 의해 웹 소켓 지원을 보려면이 링크를 참조하십시오 html5test.com site은 - 아이폰 OS 4.2 이상 이미 웹 소켓이

웹 소켓 간단한 응용 프로그램을 개발하는 방법을 설명하는 this doc를 참조하십시오 지원합니다.

콘텐츠는 포르투갈어 (브라질)로되어 있지만 의견을 남겨주세요.

+0

먼저 Android 앱을 개발할 예정입니다. 감사합니다.하지만 이것은 내가 아는 바가 아닙니다. 찾는 사람 – maxhud

0

"로컬에서 PHP 파일에 액세스"란 무엇을 의미하는지 모르겠습니다. node.js와 웹 소켓의 사용은 상호 배타적이지 않습니다.

서버 구현에 대한 결정을 내리지 않은 경우 node.js 또는 ASP.NET을 사용할 수 있습니다.

node.js는 클라이언트 구현을 추상화하는 Socket.io 소켓을 잘 지원합니다. 지원이있는 경우 WebSocket을 사용합니다. 그렇지 않으면 긴 폴링으로 되돌아갑니다.

ASP.NET에는 SignalR이라는 라이브러리가 있으며 .NET 플랫폼과 비슷한 기능을 수행합니다.

4

iOS와 Android가있는 PhoneGap에서 WebSocket을 사용할 수 있습니다. WebSocket은 Safari의 iOS에서 기본적으로 지원됩니다. Android의 경우 polyfill을 사용해야합니다.

참조 : https://stackoverflow.com/a/13527585/39904

대답은 위의 폰갭에서 사용되는 안드로이드 웹보기 내에서 웹 소켓 객체를 사용할 수 있도록하는 방법에 대한 정보를 제공하고 또한 당신이 시작하는 데 사용할 수있는 샘플 프로젝트에 대한 링크를 제공합니다.

웹 소켓은 '혜성'해킹의 해결책으로 개발되었습니다. 따라서 클라이언트와 서버 간의 실시간 양방향 통신을위한 매우 낮은 대기 시간 솔루션을 제공합니다. 즉, 여러 개의 HTTP 연결을 열고 닫는 대신 하나의 연결을 열어두기 때문에 모바일 대역폭의 낮은 대역폭과 낮은 리소스 사용량을 의미합니다. 정기적 인 요청을하는 폴링 솔루션은 WebSocket 솔루션보다 훨씬 빨리 배터리를 소모 할 수 있습니다.더 낮은 간격으로 폴링하는 경우 괜찮을 수도 있습니다. 이는 사용 사례에 따라 다릅니다.

네트워크와 네트워크 유형 (WiFi -> 3G -> WiFi) 사이에서 변경 될 때 작동하는 WebSocket의 측면에서 웹 소켓을 기본적으로 사용하는 경우 onclose을 감지하고 다시 연결해야합니다. 또한 최상의 연결 유형을 결정해야합니다. 안전하지 않은 (WS) 또는 보안 (WSS). 일부 모바일 네트워크 제공 업체는 WS 연결을 방해하는 투명 프록시를 사용하기 때문에 모바일 용 WSS를 사용하는 것이 좋습니다. 이것은 복잡하게 들릴지 모르지만 이것을 처리하는 라이브러리가 많이 있습니다. Pusher JavaScript library (참고 : 푸시에 근무합니다. 이와 같은 라이브러리는 환경이 WebSocket 연결을 허용하지 않을 때 덜 효율적인 HTTP 기반 솔루션으로 대체합니다.

참조 : realtime web technology guide. 이 장치가 연결을 변경하고 나는 웹 소켓을 사용하는 때

관련 문제