11package com.tencent.iot.explorer.link.core.auth.socket
22
33import android.text.TextUtils
4- import com.tencent.iot.explorer.link.core.auth.IoTAuth
54import com.tencent.iot.explorer.link.core.auth.message.MessageConst
65import com.tencent.iot.explorer.link.core.auth.message.payload.Payload
76import com.tencent.iot.explorer.link.core.auth.message.resp.RespFailMessage
@@ -14,7 +13,6 @@ import com.tencent.iot.explorer.link.core.auth.socket.entity.RequestEntity
1413import com.tencent.iot.explorer.link.core.auth.util.WifiUtil
1514import com.tencent.iot.explorer.link.core.log.L
1615import kotlinx.coroutines.*
17- import org.json.JSONObject
1816import java.net.URI
1917import java.util.*
2018
@@ -23,6 +21,7 @@ import java.util.*
2321 */
2422internal class WSClientManager private constructor() {
2523
24+ private var TAG = WSClientManager .javaClass.simpleName
2625 private var hasListener = false
2726 private var job: Job ? = null
2827 private lateinit var heartJob: Job
@@ -340,6 +339,11 @@ internal class WSClientManager private constructor() {
340339 * 发送消息,不做消息回复确认
341340 */
342341 fun sendMessage (message : String ) {
342+ if (message == null ) { // 空消息不做发送处理,且不入队列
343+ L .e(TAG , " empty message" )
344+ return
345+ }
346+
343347 try {
344348 client?.run {
345349 if (isConnected) {
@@ -388,13 +392,19 @@ internal class WSClientManager private constructor() {
388392 private fun resend () {
389393 client?.run {
390394 confirmQueue.forEach {
391- send(it.iotMsg.toString())
395+ it.iotMsg.toString()?.let { content -> // 避免发送空内容
396+ send(content)
397+ }
392398 }
393399 while (requestQueue.isNotEmpty()) {
394- send(requestQueue.poll()?.iotMsg.toString())
400+ requestQueue.poll()?.iotMsg.toString()?.let { content -> // 避免发送空内容
401+ send(content)
402+ }
395403 }
396404 while (messageList.isNotEmpty()) {
397- send(messageList.poll())
405+ messageList.poll()?.let { content -> // 避免发送空内容
406+ send(content)
407+ }
398408 }
399409 }
400410 }
0 commit comments