Commit 02d2c28f by 王宇航

1.5.4

連接方法新增超時時間配置
parent ec01aa92
......@@ -31,8 +31,9 @@ class MainActivity : Activity() {
tvConnect.isClickable = false
connect = GingerSoftConnect()
msgSender = connect!!.connect(
"192.168.2.164",
12581,
"192.168.002.206",
9100,
10,
object : GingerSoftConnect.SocketStateListener {
override fun onOpen() {
super.onOpen()
......
......@@ -55,7 +55,7 @@ afterEvaluate {
groupId = "com.gingersoft.connect"
artifactId = "Connect"
version = "1.5.3"
version = "1.5.4"
// 添加 POM 配置
// pom {
// name.set("GingerSoftConnect")
......
......@@ -7,9 +7,14 @@ class GingerSoftConnect {
private var webSocketClient: MyWebSocketClient? = null
fun connect(ip: String, port: Int, listener: SocketStateListener?): MessageBuilder {
fun connect(
ip: String,
port: Int,
connectOutTime: Int = 10,
listener: SocketStateListener?
): MessageBuilder {
val uri = URI("ws://$ip:$port")
webSocketClient = MyWebSocketClient(uri, listener)
webSocketClient = MyWebSocketClient(uri, connectOutTime, listener)
webSocketClient?.connect()
// 連接成功後獲得發送類
return MessageBuilder(this, webSocketClient!!)
......
......@@ -4,18 +4,20 @@ import android.util.Log
import com.gingersoft.connect.SendCallback
import com.gingersoft.connect.bean.MessageBuilder
import com.gingersoft.connect.bean.SocketCallbackBean
import kotlinx.coroutines.channels.Channel
import org.java_websocket.client.WebSocketClient
import org.java_websocket.drafts.Draft_6455
import org.java_websocket.handshake.ServerHandshake
import java.net.ConnectException
import java.net.URI
import java.util.Timer
import java.util.TimerTask
class MyWebSocketClient(
serverUri: URI,
connectOutTime: Int,
private val listener: GingerSoftConnect.SocketStateListener?
) :
WebSocketClient(serverUri) {
WebSocketClient(serverUri, Draft_6455(), null, connectOutTime) {
private val map by lazy { HashMap<String, SendCallback>() }
private val timerMap by lazy { HashMap<String, Timer>() }
......@@ -39,8 +41,13 @@ class MyWebSocketClient(
}
override fun onClose(code: Int, reason: String?, remote: Boolean) {
listener?.onClose(code, reason, remote)
status = 2
status = if(reason!=null && reason.contains("failed to connect")){
onError(ConnectException(reason))
3
} else {
listener?.onClose(code, reason, remote)
2
}
}
override fun onError(ex: Exception?) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment