iOS,什么应用或者场景下需要使用socket编程?
大家讲道理
大家讲道理 2017-04-18 09:33:47
0
2
308

一些应用只是使用了HTTP编程,也就是只用了AFNetworking。 但是听说IM类的应用需要使用到socket,是为什么呢?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(2)
左手右手慢动作

http는 일회용이며 소켓은 긴 연결을 실현할 수 있습니다. 왕복 네트워크 요청으로 문제를 해결할 수 없는 경우 소켓이 사용됩니다.
예를 들어 WeChat에서는 http 요청을 사용하여 친구 그룹을 새로 고치고 사진을 다운로드할 수 있습니다. 메시지를 받을 때 메시지가 언제 올지 알 수 없으므로 소켓을 설정하여 모든 메시지를 모니터링할 수 있습니다. 메시지를 보낼 때 http를 더 자주 사용하기 때문에 매번 다시 핸드셰이크해야 합니다. 오디오 및 비디오 통화, 중단점 재개 등은 물론 소켓을 사용해야 합니다. 모두 소켓을 사용해야 합니다. 이론적으로는 WeChat을 시작하거나 연결을 끊었다가 다시 연결한 후의 동기화 메시지는 http를 사용하여 수신되지 않은 메시지를 요청할 수 있지만 여러 가지 이유로 소켓도 사용됩니다.

물론 위에서 언급한 것은 가장 기본적인 이유일 뿐 소켓을 사용하여 http를 구현할 수 없는 데에는 여러 가지 이유가 있습니다.
http가 달성할 수 있는 모든 것은 소켓이 달성할 수 있는 것입니다. 왜냐하면 http는 tcp를 통한 소켓의 애플리케이션 시나리오 프로토콜이기 때문입니다.

IM은 대부분 http와 유사하지만 자체 비즈니스를 위해 개발된 소켓 기반으로 자체 개발된 전송 프로토콜 집합입니다.

阿神
  • 사용자의 로그인 상태를 얻으려면 IM 애플리케이션 서버는 사용자가 온라인 상태인지, 사용자의 네트워크 상태를 확인하기 위해 지속적으로 "하트비트 패킷"을 보내야 합니다. HTTP를 사용하면 중복이 너무 많아집니다. 정보(HEADER, CONTENT-TYPE, STATUS) 등.

  • 많은 IM 애플리케이션은 보안 또는 데이터 압축을 위해 자체 네트워크 프로토콜을 구현합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿