2016-08-11 6 views
0

Android 용 Java에서 채팅/통신 소프트웨어를 만드는 올바른 방법이 무엇인지 궁금합니다.Java Android - 채팅/통신을 만드는 올바른 방법?

나는 그것이 소켓 (TCP/UDP)이라고 생각한다.

웹을 사용하여 웹을 사용하는 것처럼 백엔드 스크립트로 PHP를 호출하는 경우 왜 채팅을 생성하는 것이 적절하지 않습니까? 그들 사이의 차이점은 무엇입니까? 원시 소켓 대신 호출 사용? 더 많은 배터리를 사용합니까? JSON에서 메시지를 파싱하고 웹 호출을 통해 데이터를 보내는 것이 더 쉬울 때가 있지만, 적절한 방법이 아니므로 애플리케이션에 배터리가 방전되는 것과 같은 중요한 문제가 발생할 수 있다고 생각합니다. 프로젝트를 중단한다.

저는 소켓보다 채팅을 만드는 다른 방법이 있는지 알고 싶습니다. 모든 유명 개발자는 소켓을 통신 소프트웨어 작성의 기본 방법으로 사용합니까?

+1

다양한 방법이 있습니다. 예 : - Firebase. https://github.com/firebase/AndroidChat. 소켓은 매우 낮은 수준입니다. –

+0

PHP 백엔드와 JSON을 사용하여 메시지를 옮길 수 있습니다. 배터리 사용 및 기타 관심사는이 선택에 의해 측정 가능한 방식으로 영향을받지 않을 것입니다. – alzee

+0

정보를 제공해 주셔서 감사합니다. 나는 처음에는 몇몇 친구 목록과 만 훌륭한 (기본) 채팅을 만들기 위해 생각하고있었습니다. 나는 아직도 배울 것이 많다. Android에 경량 펄스를 보내는 가장 좋은 방법은 도착하는 새 메시지를 알기 위해 많은 트래픽을 사용하지 않는 것입니다. –

답변

0

프로토콜은 소켓 또는 다른 사람이 될 수 같은 XMPP

당신이 소켓을 사용하려고 할 경우, SmartFox 당신이 의지 할 수있는 라이브러리 중 하나 일 수 있습니다. Smartfox는 통신 소켓을 사용하는 경우, 일반적으로 JSON이 시대의 대부분은, 이진 개체가에서 사용되기 때문에 는 사용하지 것을,

참고 그러나 등의 C#, 자바와 같은 언어의 번호 SDK를 제공합니다 예를 들어 소켓 기반 통신의 경우 SmartFox는 모든 데이터를 이진 객체로 래핑하는 ISFSObject를 사용합니다.

다음 게시물은 자바로 작성된 것은 아니지만 게시물을 유용하게 사용할 수 있지만 본질적으로 워크 플로는 동일합니다.

, 당신은 또한 서버의 그런 종류가 없다 WebRTC에, 그리고 피어를 사용하도록 선택할 수 있습니다 피어 투 피어 통신이 사용됩니다. 좋은 자습서는 here 찾을 수 있습니다.

enter image description here

+0

응답 해 주셔서 감사합니다. 가끔 전에 C# 소켓 채팅을 만들었지 만, 보통 서버 출력이 보낸 메시지를 올바르게 출력하지 못하는 동일한 문제에 봉착했습니다. 나는 0 개의 인덱스에서 메시지를 읽으려고했으나 여전히 비슷한 것을 보여줍니다. "■■■ User : Hello"네모는 어딘가에서오고 나는 왜 그런지 이해하지 못합니다.패킷 크기를 올바르게 결정하지 못하는 문제가 될 수 있지만 소켓 및 패킷에 대해 더 자세히 배우기 시작하면 여기에 올 가능성이 높습니다. 누군가 내가 잘못한 것을 분류 할 수있는 소스를 게시 할 것입니다. 추신. 원시 패킷 + ASCII를 사용하려고했습니다. –

+0

C#의 원시 소켓을 사용하여 바퀴를 다시 만들 필요가 없습니다. SmartFox 및 기타 상용 제품을 사용하면 더 경제적이며 디버깅, 테스트 및 배포에 많은 시간을 절약 할 수 있습니다. – David

+0

다음 번에 컴퓨터를 켜고있을 것입니다. :) –