1.jforgame-socket开发背景
1.1socket介绍
Socket是用于在计算机网络中实现通信的编程接口。它提供了一种通过网络在不同计算机之间传输数据的方式。不同http基于请求-响应模式,socket是全双工的,允许服务器、客户端同时向另外一端发送数据。由于socket工作在TCP/IP协议中的运输层,而不是像http这种工作在应用层,因此使用socket通信需要建立自己的私有协议栈。通过私有协议栈定义网络传输的字节流的具体意义。
1.2原生netty/mina复杂性与缺陷
Netty/Mina都是用于构建高性能、可扩展网络应用程序的Java框架。它们提供了一套抽象的、事件驱动的异步网络编程模型,使得开发者可以轻松地构建各种网络应用,例如服务器、客户端、代理等。
尽管Netty/Mina是一个强大而灵活的框架,但是对于初学者来说,可能会感到一些复杂性。下面是一些可能与Netty相关的复杂性因素:
-
编解码器和处理器:Netty/Mina提供了一套强大的编解码器和处理器,用于处理不同的协议和数据格式。选择合适的编解码器和处理器,并正确配置它们,可能需要一些学习和实践。特别是处理数据流粘包/拆包问题。
-
业务消息路由器:Netty/Mina只提供关于网络消息IO方面的内容,对于业务消息的路由处理(类似于SpringMVC的DispatchServle