Skip to content
/ Lemon Public

重构Pomelo,将Java-websocket 替换为 okhttp-websocket

Notifications You must be signed in to change notification settings

vecharm/Lemon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lemon

重构Android-Pomelo,将Java-websocket 替换为 okhttp-websocket

Pomelo 使用的是Java-websocket,在某些手机会出现内存泄露和空指针异常,所以本项目使用Okhttp-websocket代替

* 去掉xhr-polling 过时协议的支持
* 重写重连机制的逻辑,Pomelo里面的重连机制,重连一次就挂掉了
* 去掉多Connection,多namespace 的支持,很多时候都用不上。为了从简,就去掉多余的东西了
* 支持SSL,Okhttp的功能

两个版本连接耗时对比测试

使用方式:

    //如果不支持ssl,请注释这一条
       Connector.setDefaultSSL(SSLFactory.genSSLSocket(), SSLFactory.trustManager)
       
       client = LemonClient(host, port, object : SocketListener {
           override fun onReConnect() {
               Toaster.showInfo("socket.onReConnect")
           }

           override fun onConnected() {
               Toaster.showInfo("socket.onConnected")
           }

           override fun onError(socketIOException: SocketIOException) {
               Toaster.showInfo("socket.onError")
           }

           override fun onDisconnect() {
               Toaster.showInfo("socket.onDisconnect")
           }
          //如果不需要内部的重连机制  reconnectTime = -1
       },reconnectTime = 3000)