代码拉取完成,页面将自动刷新
package io.gitee.zhangbinhub.test.reactive.websocket
import io.gitee.zhangbinhub.acp.boot.interfaces.LogAdapter
import io.gitee.zhangbinhub.acp.boot.websocket.reactive.AcpWebSocketServerReactive
import io.gitee.zhangbinhub.acp.core.common.CommonTools.getDefaultCharset
import org.springframework.stereotype.Component
import org.springframework.web.reactive.socket.WebSocketSession
import java.nio.ByteBuffer
@Component
class TestWebSocketServerReactive(logAdapter: LogAdapter) : AcpWebSocketServerReactive(logAdapter, clientIdIndex = 2) {
override fun getPath(): String {
return "/websocket/{userId}"
}
override fun sessionOpen(session: WebSocketSession) {
logAdapter.info("【websocket消息】【$clientIp】有新的连接,连接id=$clientId")
sendMessage("CONNECT_SUCCESS")
}
override fun sessionClose(session: WebSocketSession) {
logAdapter.info("【websocket消息】【$clientIp】【$clientId】连接断开!")
}
override fun sessionError(session: WebSocketSession?, throwable: Throwable?) {
logAdapter.error(if (throwable != null) throwable.message else "", throwable)
logAdapter.error("【websocket消息】【" + clientIp + "】用户错误,原因:" + if (throwable != null) throwable.message else "")
}
override fun receiveMessage(session: WebSocketSession, message: ByteBuffer) {
logAdapter.info("【websocket消息】【$clientIp】收到客户端【$clientId】发来的【二进制】消息:$message")
sendMessage(ByteBuffer.wrap("RECEIVE_BINARY_SUCCESS: $message".toByteArray(getDefaultCharset())))
}
override fun receiveMessage(session: WebSocketSession, message: String) {
logAdapter.info("【websocket消息】【$clientIp】收到客户端【$clientId】发来的【文本】消息:$message")
sendMessage("RECEIVE_TEXT_SUCCESS: $message")
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。