5 Commits

Author SHA1 Message Date
d44150ea1a Shamrock: 在获取某些字段错误时,将字段值定义为0 #150 2024-01-01 00:42:47 +08:00
0360c81bee Shamrock: fix #173 2024-01-01 00:40:55 +08:00
cb904c1f1c Shamrock: fix #179 2024-01-01 00:38:44 +08:00
bc754db959 Merge remote-tracking branch 'origin/master' 2024-01-01 00:37:35 +08:00
8df799a6e4 Shamrock: fix #180 2024-01-01 00:37:12 +08:00
4 changed files with 27 additions and 11 deletions

View File

@ -131,6 +131,8 @@ internal object FavAddImageMsg: IActionHandler() {
val pb = ProtoUtils.decodeFromByteArray(data)
itemId = pb[2, 20009, 1].asUtf8String
}
System.gc()
}
return ok(PicInfo(

View File

@ -37,7 +37,7 @@ import kotlin.concurrent.timer
internal abstract class WebSocketClientServlet(
url: String,
private val heartbeatInterval: Long,
wsHeaders: Map<String, String>
private val wsHeaders: Map<String, String>
) : BaseTransmitServlet, WebSocketClient(URI(url), wsHeaders) {
private val sendLock = Mutex()
@ -85,6 +85,14 @@ internal abstract class WebSocketClientServlet(
}
override fun onClose(code: Int, reason: String?, remote: Boolean) {
if (code == 403) {
if (wsHeaders.containsKey("authorization")) {
val token = wsHeaders["authorization"]!!.substring(7)
LogCenter.log("WebSocketClient连接被拒绝, token: $token 失效", Level.WARN)
} else {
LogCenter.log("WebSocketClient连接被拒绝, 未设置token", Level.WARN)
}
}
LogCenter.log("WebSocketClient onClose: $code, $reason, $remote")
cancelFlowJobs()
}

View File

@ -89,7 +89,13 @@ internal abstract class WebSocketTransmitServlet(
if (path != "/api") {
eventReceivers.remove(conn)
}
LogCenter.log({ "WSServer断开(${conn.remoteSocketAddress.address.hostAddress}:${conn.remoteSocketAddress.port}$path): $code,$reason,$remote" }, Level.WARN)
runCatching {
conn.remoteSocketAddress.address.hostAddress to conn.remoteSocketAddress.port
}.onSuccess {
LogCenter.log({ "WSServer断开(${it.first}:${it.second}$path): $code,$reason,$remote" }, Level.WARN)
}.onFailure {
LogCenter.log({ "WSServer断开($path): $code,$reason,$remote" }, Level.WARN)
}
}
override fun onMessage(conn: WebSocket, message: String) {

View File

@ -67,14 +67,14 @@ internal data class NoticeEvent(
@SerialName("post_type") val postType: PostType,
@SerialName("notice_type") val type: NoticeType,
@SerialName("sub_type") val subType: NoticeSubType = NoticeSubType.None,
@SerialName("group_id") val groupId: Long = 0,
@SerialName("operator_id") val operatorId: Long = 0,
@SerialName("user_id") val userId: Long = 0,
@SerialName("sender_id") val senderId: Long = 0,
@SerialName("duration") val duration: Int = 0,
@SerialName("message_id") val msgId: Int = 0,
@SerialName("group_id") val groupId: Long = -1,
@SerialName("operator_id") val operatorId: Long = -1,
@SerialName("user_id") val userId: Long = -1,
@SerialName("sender_id") val senderId: Long = -1,
@SerialName("duration") val duration: Int = -1,
@SerialName("message_id") val msgId: Int = -1,
@SerialName("tip_text") val tip: String = "",
@SerialName("target_id") val target: Long = 0,
@SerialName("target_id") val target: Long = -1,
@SerialName("file") val file: GroupFileMsg? = null,
@SerialName("private_file") val privateFile: PrivateFileMsg? = null,
@SerialName("flag") val flag: String? = null,
@ -104,8 +104,8 @@ internal data class RequestEvent(
@SerialName("post_type") val postType: PostType,
@SerialName("request_type") val type: RequestType,
@SerialName("sub_type") val subType: RequestSubType = RequestSubType.None,
@SerialName("group_id") val groupId: Long = 0,
@SerialName("user_id") val userId: Long = 0,
@SerialName("group_id") val groupId: Long = -1,
@SerialName("user_id") val userId: Long = -1,
@SerialName("comment") val comment: String = "",
@SerialName("flag") val flag: String? = null,
)