From 2cccb9b4faac6c2de01ba58d771b63c539f34c4a Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Mon, 16 Oct 2023 14:45:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=20`kmnkt`=20=E4=BE=9D=E8=B5=96=EF=BC=8C=E9=87=8D=E6=9E=84=20`S?= =?UTF-8?q?ocketUtils`=20#339=20#349?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- app/libs/socket-2.0.0-alpha06-2.aar | Bin 101358 -> 0 bytes .../forwarder/entity/setting/SocketSetting.kt | 8 + .../fragment/senders/SocketFragment.kt | 13 +- .../sms/forwarder/utils/sender/SocketUtils.kt | 204 +++++++++--------- .../res/layout/fragment_senders_socket.xml | 49 ++++- app/src/main/res/values-en/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 8 files changed, 164 insertions(+), 116 deletions(-) delete mode 100644 app/libs/socket-2.0.0-alpha06-2.aar diff --git a/app/build.gradle b/app/build.gradle index 38edc1b4..1487d3e0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -192,7 +192,7 @@ dependencies { //kmnkt基于Kotlin Multiplatform的跨平台socket通信统一接口,支持UDP/TCP/MQTT协议 //https://github.com/xuankaicat/kmnkt implementation("org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5") - implementation files('libs/socket-2.0.0-alpha06-2.aar') + //implementation files('libs/socket-2.0.0-alpha06-2.aar') testImplementation deps.junit androidTestImplementation 'androidx.test.ext:junit:1.1.5' diff --git a/app/libs/socket-2.0.0-alpha06-2.aar b/app/libs/socket-2.0.0-alpha06-2.aar deleted file mode 100644 index dd3a350e212d63abdac63cbf291ed1b144c15001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101358 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

2*6Ah$8AS%V6J)}PT(IT$M+)S+a+Zb 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 E4Zy@cFaQ7m diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt index 2a719498..548d286c 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/SocketSetting.kt @@ -9,6 +9,7 @@ data class SocketSetting( val port: Int = 0, //端口号 val msgTemplate: String = "", //消息模板 val secret: String? = "", //签名密钥 + val response: String? = "", //成功应答关键字 val username: String = "", //用户名 val password: String = "", //密码 val inCharset: String = "", //输入编码 @@ -29,4 +30,11 @@ data class SocketSetting( } } + fun getUriTypeCheckId(): Int { + return when (method) { + "ssl" -> R.id.rb_uriType_ssl + else -> R.id.rb_uriType_tcp + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt index 43266d92..43f17d57 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/SocketFragment.kt @@ -122,13 +122,14 @@ class SocketFragment : BaseFragment(), View.OnCli binding!!.etPort.setText(settingVo.port.toString()) binding!!.etMsgTemplate.setText(settingVo.msgTemplate) binding!!.etSecret.setText(settingVo.secret) + binding!!.etResponse.setText(settingVo.response) binding!!.etUsername.setText(settingVo.username) binding!!.etPassword.setText(settingVo.password) binding!!.etInCharset.setSelectedItem(settingVo.inCharset) binding!!.etOutCharset.setSelectedItem(settingVo.outCharset) binding!!.etInMessageTopic.setText(settingVo.inMessageTopic) binding!!.etOutMessageTopic.setText(settingVo.outMessageTopic) - binding!!.etUriType.setText(settingVo.uriType) + binding!!.rgUriType.check(settingVo.getUriTypeCheckId()) binding!!.etPath.setText(settingVo.path) binding!!.etClientId.setText(settingVo.clientId) binding!!.layoutMqtt.visibility = if (checkedId == R.id.rb_method_mqtt) View.VISIBLE else View.GONE @@ -170,6 +171,7 @@ class SocketFragment : BaseFragment(), View.OnCli }.start() return } + R.id.btn_del -> { if (senderId <= 0 || isClone) { popToBack() @@ -183,6 +185,7 @@ class SocketFragment : BaseFragment(), View.OnCli }.show() return } + R.id.btn_save -> { val name = binding!!.etName.text.toString().trim() if (TextUtils.isEmpty(name)) { @@ -226,13 +229,17 @@ class SocketFragment : BaseFragment(), View.OnCli val msgTemplate = binding!!.etMsgTemplate.text.toString().trim() val secret = binding!!.etSecret.text.toString().trim() + val response = binding!!.etResponse.text.toString().trim() val username = binding!!.etUsername.text.toString().trim() val password = binding!!.etPassword.text.toString().trim() val inCharset = binding!!.etInCharset.text.toString().trim() val outCharset = binding!!.etOutCharset.text.toString().trim() val inMessageTopic = binding!!.etInMessageTopic.text.toString().trim() val outMessageTopic = binding!!.etOutMessageTopic.text.toString().trim() - val uriType = binding!!.etUriType.text.toString().trim() + val uriType = when (binding!!.rgUriType.checkedRadioButtonId) { + R.id.rb_uriType_ssl -> "ssl" + else -> "tcp" + } val path = binding!!.etPath.text.toString().trim() val clientId = binding!!.etClientId.text.toString().trim() @@ -240,7 +247,7 @@ class SocketFragment : BaseFragment(), View.OnCli throw Exception(getString(R.string.invalid_mqtt_message_topic)) } - return SocketSetting(method, address, port.toInt(), msgTemplate, secret, username, password, inCharset, outCharset, inMessageTopic, outMessageTopic, uriType, path, clientId) + return SocketSetting(method, address, port.toInt(), msgTemplate, secret, response, username, password, inCharset, outCharset, inMessageTopic, outMessageTopic, uriType, path, clientId) } override fun onDestroyView() { diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt index b79cd251..4fc3e553 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/SocketUtils.kt @@ -4,12 +4,6 @@ import android.annotation.SuppressLint import android.text.TextUtils import android.util.Base64 import android.util.Log -import com.gitee.xuankaicat.kmnkt.socket.MqttQuality -import com.gitee.xuankaicat.kmnkt.socket.dsl.mqtt -import com.gitee.xuankaicat.kmnkt.socket.dsl.tcp -import com.gitee.xuankaicat.kmnkt.socket.dsl.udp -import com.gitee.xuankaicat.kmnkt.socket.open -import com.gitee.xuankaicat.kmnkt.socket.utils.Charset import com.google.gson.Gson import com.idormy.sms.forwarder.database.entity.Rule import com.idormy.sms.forwarder.entity.MsgInfo @@ -17,7 +11,20 @@ import com.idormy.sms.forwarder.entity.setting.SocketSetting import com.idormy.sms.forwarder.utils.SendUtils import com.idormy.sms.forwarder.utils.SettingUtils import com.xuexiang.xutil.app.AppUtils +import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken +import org.eclipse.paho.client.mqttv3.MqttCallbackExtended +import org.eclipse.paho.client.mqttv3.MqttClient +import org.eclipse.paho.client.mqttv3.MqttConnectOptions +import org.eclipse.paho.client.mqttv3.MqttException +import org.eclipse.paho.client.mqttv3.MqttMessage +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence +import java.io.BufferedReader +import java.io.BufferedWriter +import java.io.InputStreamReader +import java.io.OutputStreamWriter +import java.net.Socket import java.net.URLEncoder +import java.nio.charset.Charset import java.nio.charset.StandardCharsets import java.text.SimpleDateFormat import java.util.* @@ -62,113 +69,100 @@ class SocketUtils { } if (setting.method == "TCP" || setting.method == "UDP") { - var isReceived = false - var isConnected = false - val socket = if (setting.method == "TCP") { - tcp { - address = setting.address//设置ip地址 - port = setting.port//设置端口号 - if (!TextUtils.isEmpty(setting.inCharset)) inCharset = Charset.forName(setting.inCharset)//设置输入编码 - if (!TextUtils.isEmpty(setting.outCharset)) outCharset = Charset.forName(setting.outCharset)//设置输出编码 - } - } else { - udp { - address = setting.address//设置ip地址 - port = setting.port//设置端口号 - if (!TextUtils.isEmpty(setting.inCharset)) inCharset = Charset.forName(setting.inCharset)//设置输入编码 - if (!TextUtils.isEmpty(setting.outCharset)) outCharset = Charset.forName(setting.outCharset)//设置输出编码 - } - } - - socket.open { - success { - Log.d(TAG, "${setting.method}连接成功") - isConnected = true - //SendUtils.updateLogs(logId, 1, "TCP连接成功") - socket.send(message) - socket.startReceive { str, data -> - isReceived = true - Log.d(TAG, "str=$str,data=$data") - SendUtils.updateLogs(logId, 2, "收到订阅消息:str=$str,data=$data") - SendUtils.senderLogic(2, msgInfo, rule, senderIndex, msgId) - return@startReceive false - } - } - failure { - Log.d(TAG, "${setting.method}连接失败") - val status = 0 - SendUtils.updateLogs(logId, status, "TCP连接失败") - SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) - return@failure false//是否继续尝试连接 - } - loss { - Log.d(TAG, "${setting.method}连接断开") - return@loss true//是否尝试重连 - } - } - - //延时5秒关闭连接 - if (isConnected) { - Thread.sleep(10000) - socket.stopReceive() + // 创建套接字并连接到服务器 + val socket = Socket(setting.address, setting.port) + Log.d(TAG, "连接到服务器: ${setting.address}:${setting.port}") + try { + // 获取输入流和输出流,设置字符集为UTF-8 + val input = BufferedReader(InputStreamReader(socket.getInputStream(), Charset.forName(setting.inCharset))) + val output = BufferedWriter(OutputStreamWriter(socket.getOutputStream(), Charset.forName(setting.outCharset))) + + // 向服务器发送数据 + output.write(message) + output.newLine() // 添加换行符以便服务器使用readLine()来读取 + output.flush() + Log.d(TAG, "发送到服务器的消息: $message") + + // 从服务器接收响应 + val response = input.readLine() + Log.d(TAG, "从服务器接收的响应: $response") + val status = if (!setting.response.isNullOrEmpty() && !response.contains(setting.response)) 0 else 2 + SendUtils.updateLogs(logId, status, response) + SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) + } catch (e: Exception) { + e.printStackTrace() + val status = 0 + SendUtils.updateLogs(logId, status, e.message.toString()) + SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) + } finally { + // 关闭套接字 socket.close() - if (!isReceived) { - SendUtils.updateLogs(logId, 0, "未收到订阅消息") - SendUtils.senderLogic(0, msgInfo, rule, senderIndex, msgId) - } + Log.d(TAG, "Disconnected from MQTT broker") } - return - } else if (setting.method == "MQTT") { - val mqtt = mqtt { - address = setting.address//设置ip地址 - port = setting.port//设置端口号 - if (!TextUtils.isEmpty(setting.inCharset)) inCharset = Charset.forName(setting.inCharset)//设置输入编码 - if (!TextUtils.isEmpty(setting.outCharset)) outCharset = Charset.forName(setting.outCharset)//设置输出编码 - if (!TextUtils.isEmpty(setting.username)) username = setting.username - if (!TextUtils.isEmpty(setting.password)) password = setting.password - if (!TextUtils.isEmpty(setting.inMessageTopic)) inMessageTopic = setting.inMessageTopic - if (!TextUtils.isEmpty(setting.outMessageTopic)) outMessageTopic = setting.outMessageTopic - //自定义配置 - qos = MqttQuality.ExactlyOnce // 服务质量 详见MqttQuality - if (!TextUtils.isEmpty(setting.uriType)) uriType = setting.uriType //通信方式 默认为tcp - if (!TextUtils.isEmpty(setting.clientId)) clientId = setting.clientId //客户端ID,如果为空则为随机值 - timeOut = 10 //设置超时时间 - cleanSession = true //断开连接后是否清楚缓存,如果清除缓存则在重连后需要手动恢复订阅。 - keepAliveInterval = 20 //检测连接是否中断的间隔 - //行为配置 - threadLock = false //是否启用线程同步锁 默认false + // MQTT 连接参数 + val uriType = if (TextUtils.isEmpty(setting.uriType)) "tcp" else setting.uriType + val brokerUrl = "${uriType}://${setting.address}:${setting.port}" + if (!TextUtils.isEmpty(setting.path)) { + brokerUrl.plus(setting.path) } - - mqtt.open { - success { - Log.d(TAG, "MQTT连接成功") - //SendUtils.updateLogs(logId, 1, "MQTT连接成功") - // 订阅并发布后等待至拿到响应消息并赋值给result - // 如果超过10秒没有收到消息则将result设为"消息响应超时",并取消订阅topic - val response = mqtt.sendAndReceiveSync(setting.outMessageTopic, setting.inMessageTopic, message, 10000L) ?: "消息响应超时" - mqtt.close() - - val status = if (response == "消息响应超时") 0 else 2 - SendUtils.updateLogs(logId, status, "收到订阅消息:$response") - SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) - return@success - } - failure { - Log.d(TAG, "MQTT连接失败") - val status = 0 - SendUtils.updateLogs(logId, status, "MQTT连接失败") - SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) - return@failure false//是否继续尝试连接 + Log.d(TAG, "MQTT brokerUrl: $brokerUrl") + val clientId = if (TextUtils.isEmpty(setting.clientId)) UUID.randomUUID().toString() else setting.clientId + val mqttClient = MqttClient(brokerUrl, clientId, MemoryPersistence()) + try { + val options = MqttConnectOptions() + if (!TextUtils.isEmpty(setting.username)) { + options.userName = setting.username } - loss { - Log.d(TAG, "MQTT失去连接") - return@loss true//是否尝试重连 + if (!TextUtils.isEmpty(setting.password)) { + options.password = setting.password.toCharArray() } - } + options.isCleanSession = true + mqttClient.connect(options) + Log.d(TAG, "Connected to MQTT broker: ${mqttClient.serverURI}") + + mqttClient.subscribe(setting.inMessageTopic) + Log.d(TAG, "Subscribed to topic: $setting.inMessageTopic") + + val outMessage = message.toByteArray(Charset.forName(setting.outCharset)) + val mqttMessage = MqttMessage(outMessage) + mqttMessage.qos = 0 // 设置消息质量服务等级 + //异步发布消息 + mqttClient.publish(setting.outMessageTopic, mqttMessage) + Log.d(TAG, "Published message to topic: $setting.outMessageTopic") + mqttClient.setCallback(object : MqttCallbackExtended { + override fun connectionLost(cause: Throwable?) { + val response = "Connection to MQTT broker lost: ${cause?.message}" + Log.d(TAG, response) + SendUtils.updateLogs(logId, 0, response) + SendUtils.senderLogic(0, msgInfo, rule, senderIndex, msgId) + } - } + override fun messageArrived(topic: String?, inMessage: MqttMessage?) { + val payload = inMessage?.payload?.toString(Charset.forName(setting.inCharset)) + Log.d(TAG, "Received message on topic $topic: $payload") + val status = if (!setting.response.isNullOrEmpty() && !payload?.contains(setting.response)!!) 0 else 2 + SendUtils.updateLogs(logId, status, payload.toString()) + SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) + } + override fun deliveryComplete(token: IMqttDeliveryToken?) { + Log.d(TAG, "deliveryComplete") + SendUtils.updateLogs(logId, 2, "deliveryComplete") + SendUtils.senderLogic(2, msgInfo, rule, senderIndex, msgId) + } + + override fun connectComplete(reconnect: Boolean, serverURI: String?) { + Log.d(TAG, "connectComplete") + } + }) + } catch (e: MqttException) { + Log.d(TAG, "An error occurred: ${e.message}") + } finally { + mqttClient.disconnect() + Log.d(TAG, "Disconnected from MQTT broker") + } + } } //JSON需要转义的字符 diff --git a/app/src/main/res/layout/fragment_senders_socket.xml b/app/src/main/res/layout/fragment_senders_socket.xml index 9408230f..cab418b6 100644 --- a/app/src/main/res/layout/fragment_senders_socket.xml +++ b/app/src/main/res/layout/fragment_senders_socket.xml @@ -267,6 +267,28 @@ + + + + + + + + - + android:orientation="horizontal"> + + + + + + diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index b4112661..0f9236d6 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -411,6 +411,7 @@ UDP TCP MQTT + SSL Local IP: Instructions: \n[Note] The APP version of the sender and receiver must be the same!\n1. Please keep the SOURCE and DESTINATION phones in the same Wi-Fi network, and do not turn on isolation. \n2. Tap "Send" on SOURCE mobile phone, and get "server IP" \n3. After filling in "Server IP" on DESTINATION phone, tap "Receive". \n [NOTE:] sender(s), forwarding rule(s) and log(s) will be overwritten after cloning! @@ -780,6 +781,7 @@ For example: payload=%7B%22text%22%3A%22[msg]%22%7D [msg] will be replaced with SMS content.\nJson format is supported, e.g. {\"text\":\"[msg]\"}.\nNote: msg is automatically URLEncoder except in JSON format Secret: If left empty, the sign will not be calculated Successful Response Keyword:If left empty, HTTP status 200 represents success + Successful Response Keyword:Leaving it blank means sending is considered as successful. Headers Key Value diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2f63239f..bcba3697 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -412,6 +412,7 @@ UDP TCP MQTT + SSL 本机IP: 严正声明:\n该功能仅限个人新旧手机切换使用,用于非法用途后果自负!\n\n操作说明:\n1.新旧手机连接同一个WiFi网络(禁用AP隔离),如需穿透内网请先配置Frpc\n2.【二选一】旧手机点【推送】按钮,将本机的配置推送到服务端\n3.【二选一】新手机点【拉取】按钮,将拉取服务端的配置到本机\n\n注意事项:\n1.客户端与服务端的APP版本必须一致,才能克隆!\n2.导入成功后,发送通道、转发规则将完全被覆盖,清空历史记录!\n3.主动请求、保活措施、个性设置不在克隆范围 @@ -781,6 +782,7 @@ 例如:payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式,例如:{\"text\":\"[msg]\"}。\n注意:除JSON格式外,msg会自动进行URLEncoder Secret:置空则不计算sign 成功应答关键字:置空则http状态200即为成功 + 成功应答关键字:置空则发出即成功 Headers Key Value