class ClientLogin: ChannelInboundHandlerAdapter() { private val logger: Logger = LoggerFactory.getLogger(this.javaClass)
@Throws(Exception::class)
override fun channelActive(ctx: ChannelHandlerContext) {
val packet: LoginPacket = LoginPacket()
logInfo(logger,"packet = ${GsonUtils.toJson(packet)}")
val byteBuf = PacketManager.encode(packet)
ctx.channel().writeAndFlush(byteBuf) }}
五. 总结
这次,我开发的桌面端顺序其实逻辑并不复杂,只需接纳 Web 后台的指令,然后跟各个设备停止交互。
接纳到 Web 端的指令后,经过 Guava 的 EventBus 将指令经过 TCP 发送给各个设备,发送时需求转化成对应的 Packet。因此,中心的模块就是这个 TCP 自定义的协议。
【编辑引荐】
Java 的新未来:逐渐“Kotlin 化”
彻底弄懂TCP协议:从三次握手说起
视屏面试传输协议究竟是TCP还是UDP
(责任编辑:admin)