websocket 提供了客户端和服务端的长链接,允许客户端和服务端双向发送消息
okhttp 提供了使用websocket 相关接口议。同时为方便单元测试,又提供了mockwebserver可以把一个安卓客户端作为服务端接受消息。
websocket使用
权限
<uses-permission android:name="android.permission.INTERNET" />
app的build.gradle引入okhttp3库
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.11'
创建监听
inner class MyWebSocketListener :WebSocketListener(){
override fun onOpen(webSocket: WebSocket, response: Response) {
println("WebSocketListener onOpen 连接到服务器 ")
}
override open fun onMessage(webSocket: WebSocket, text: String) {
println("WebSocketListener onMessage 收到消息 ")
}
override open fun onMessage(webSocket: WebSocket, bytes: ByteString) {
println("WebSocketListener onMessage 收到消息 bytes ")
}
override open fun onClosing(webSocket: WebSocket, code: Int, reason: String) {
println("WebSocketListener onClosing ")
}
override open fun onClosed(webSocket: WebSocket