Commit 02d2c28f by 王宇航

1.5.4

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