최근 일부 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 客户端命名空间disconnect
가 표시됩니다.
드디어 이 작업을 수행하는 부분을 찾았습니다. 내 생각에 가장 큰 문제는 안드로이드 측면에 있는 것 같다. 사용할 라이브러리를 변경하면 모든 문제가 해결된 것 같았고, 작은 변경만으로 즉각적인 연결 끊김 문제가 해결되었습니다. 양 당사자의 최종 코드 및 기타 세부 정보는 다음과 같습니다.
//언어로 이동
으아악// 안드로이드 코틀린
androidmanifest.xml
으아악app-build.gradle
으아악// mainactivity.kt 또는 이 콘텐츠를 넣고 싶은 곳에
으아악 즉시 연결 해제에 관해서는 안드로이드 측에서 연결을 시도할 때 추가할 필요가 없는 것 같습니다. /socket.io
。删除它解决了断开连接的问题。而且您的项目中不需要 asset
文件夹。伙计,这个 socket.io
뭔가 이상합니다.
위 내용은 Android 애플리케이션이 소켓.io Golang 서버에 연결할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!