1:导入依赖包:
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.google.code.gson:gson:2.8.5'
2:构建连接:这里使用Websocket
fun connect() {
var echoWebSocketListener: EchoWebSocketListener1 = EchoWebSocketListener1()
var request: Request = Request.Builder().url("ws://ip:端口").build()
var client = OkHttpClient()
client.newWebSocket(request, echoWebSocketListener)
client.dispatcher().executorService().shutdown()
}
3.EchoWebSocketListener1继承 WebSocketListener重写各个 函数处理事务
inner class EchoWebSocketListener1 : WebSocketListener() {
override fun onOpen(webSocket: WebSocket, response: Response) {
isconnect = true
sendwebSocket = webSocket
//构建json发送服务器
var message:com.example.remoteapp2.beans.Message = com.example.remoteapp2.beans.Message()
var hashmap :HashMap<String,String> = HashMap()
message.setType(MessageType.BIND)
message.setFrom("USER")
hashmap.put("PID",pid)
message.setContent(hashmap)
var json = Gson().toJson(message)
sendwebSocket!!.send(json)
}
override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) {
var messageO = Message.obtain()
}
override fun onClosing(webSocket: WebSocket, code: Int, reason: String) {
}
override fun onMessage(webSocket: WebSocket, text: String) {
//获得服务器发送的json消息,转为对应的的message对象
val uu: com.example.remoteapp2.beans.Message? =
Gson().fromJson(text, com.example.remoteapp2.beans.Message::class.java)
}
override fun onMessage(webSocket: WebSocket, bytes: ByteString) {
}
override fun onClosed(webSocket: WebSocket, code: Int, reason: String) {
}
}