我正在尝试使用Socket.IO将Android客户端连接到Node JS服务器。连接成功,但是我无法发出或收听任何数据更改。
这是我的Android代码...
apt-get install -y snapd libsnappy1
套接字完美连接到服务器。我在日志中收到“已连接”消息。但是该“消息”事件不起作用。我究竟做错了什么? ; _;
答案 0 :(得分:0)
您需要使用OkHttp。将此添加到您的Gradle依赖项:
implementation("com.squareup.okhttp3:okhttp:4.8.1")
然后将其添加为活动或片段类中的字段:
private var socket: Socket? = null
然后这就是您如何在活动或片段的onCreate()
方法中获取套接字实例的方式:
val okHttpClient: OkHttpClient = OkHttpClient.Builder().build()
IO.setDefaultOkHttpWebSocketFactory(okHttpClient)
IO.setDefaultOkHttpCallFactory(okHttpClient)
val opts = IO.Options()
opts.apply {
callFactory = okHttpClient
webSocketFactory = okHttpClient
}
socket = try {
IO.socket("http://10.0.2.2:3000", opts)
} catch (e: URISyntaxException) {
null
}
(此代码用科特林语言编写)
然后一切正常。