> 백엔드 개발 > Golang > Android 애플리케이션이 소켓.io Golang 서버에 연결할 수 없습니다.

Android 애플리케이션이 소켓.io Golang 서버에 연결할 수 없습니다.

PHPz
풀어 주다: 2024-02-08 21:48:22
앞으로
1185명이 탐색했습니다.

Android应用程序无法连接到socket.io Golang服务器

최근 일부 Android 애플리케이션이 Socket.io Golang 서버에 연결할 수 없는 문제가 널리 주목을 받고 있습니다. PHP 편집자 Xinyi가 모든 사람의 질문에 답변해 드립니다. Socket.io Golang 서버를 사용할 때 Android 애플리케이션 연결 실패를 유발할 수 있는 몇 가지 일반적인 연결 문제가 있습니다. 먼저, Android 애플리케이션과 서버가 동일한 네트워크 환경에 있고 서로 액세스할 수 있는지 확인하세요. 또한 서버의 주소와 포트가 코드에 올바르게 설정되어 있는지 확인하세요. 문제가 지속되면 다른 네트워크 디버깅 도구를 사용하여 Wireshark 등의 연결 문제를 확인해 볼 수 있습니다. 이 답변이 문제를 해결하는 데 도움이 되기를 바랍니다!

질문 내용

kotlin 代码没有找到 golang 套接字服务器。我做了一个 netstat -ano 및 포트 8000이 이미 tcp에 사용되었기 때문에 뭔가 빠졌는지 모르겠습니다. 따라서 소켓 서버가 제대로 실행되고 있다고 가정합니다. 하지만 내 안드로이드는 여전히 그것을 찾을 수 없습니다. 서버와 에뮬레이터가 모두 동일한 네트워크에 있습니다. 내 코드는 다음과 같습니다.

//서버(golang)

으아악

//안드로이드(코틀린)

으아악

업데이트:

@dev.bmax의 답변 이전에 저는 일반 텍스트 트래픽 활성화에 대한 정보를 찾았으며 이미 내 정보에 있습니다. androidmanifest.xml上添加了 android:usescleartexttraffic="true" ,但该应用程序仍然无法连接到服务器。 socket.connected() 이제 false를 반환합니다.

그리고 실제로 서버에 어떻게 연결해야 하나요? 경로 없이 http://10.0.2.2:8000만 필요한가요?

업데이트:

다음과 같은 로그가 계속 수신되는 것을 방금 확인했습니다.

으아악

로그캣에 계속 뜹니다

업데이트:

다른 코드를 찾아보다가 작동하는 코드를 찾았습니다. 다행히도 불행하게도 매우 간단합니다. 제가 찾은 코드는 다음과 같습니다:

//언어로 이동

으아악

//안드로이드 코틀린

으아악

베어본 코드는 작동하는데 왜 googollee 라이브러리에서 제공하는 코드는 작동하지 않는지 궁금합니다. 나는 양쪽의 어떤 설정도 놓친 것 같지 않습니다.

업데이트:

일부 진전이 있었습니다. 발견 android 코드는 작동하지만 어떤 이유로 인해 예상치 못한 문제가 발생했습니다. Android 측에서 변경한 내용은 다음과 같습니다.

// 애플리케이션 build.gradle

으아악

//mainactivity.kt

으아악

// androidmanifest.xml

으아악

변경을 완료하면 이제 애플리케이션을 서버에 연결할 수 있습니다. 그런데 연결 후 바로 앱 연결이 끊어지는 것 같습니다. 그런 다음 서버에 다시 연결했다가 다시 연결을 끊었다가 다시 서버에 연결하는데 주기가 멈추지 않는 것 같습니다. 연결을 끊으면 lated 客户端命名空间dis​​connect가 표시됩니다.

해결 방법

드디어 이 작업을 수행하는 부분을 찾았습니다. 내 생각에 가장 큰 문제는 안드로이드 측면에 있는 것 같다. 사용할 라이브러리를 변경하면 모든 문제가 해결된 것 같았고, 작은 변경만으로 즉각적인 연결 끊김 문제가 해결되었습니다. 양 당사자의 최종 코드 및 기타 세부 정보는 다음과 같습니다.

//언어로 이동

으아악

// 안드로이드 코틀린

androidmanifest.xml

으아악

app-build.gradle

으아악

// mainactivity.kt 또는 이 콘텐츠를 넣고 싶은 곳에

으아악

즉시 연결 해제에 관해서는 안드로이드 측에서 연결을 시도할 때 추가할 필요가 없는 것 같습니다. /socket.io。删除它解决了断开连接的问题。而且您的项目中不需要 asset 文件夹。伙计,这个 socket.io 뭔가 이상합니다.

위 내용은 Android 애플리케이션이 소켓.io Golang 서버에 연결할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿