基于netty4的极简易上手网络框架
由于工作的原因,基本没有时间对该项目开发,该项目后续开发方向主要为游戏网络通讯,感谢大家关注与支持.
除了设置ip和端口外,该框架在使用的时候几乎不用去管网络层,这款框架的目的在于让使用者尽量写自己的业务逻辑,而网络层就算完全不会也没有任何问题。适用于socket通讯初学者或者需要socket通讯的小项目。
当然不会,该框架的网络层和业务层使用反射的方式去对接,使用者只需要继承其业务类就可以了, 这里的业务类不是什么特别难的东西,你只需要注意三个回调事件就可以了,这三个分别作用是:
msgService(String var1, String var2) : 当收到消息后 会调用这个方法 其中var1是消息的协议码,对你没看错都是string,该框架传输的数据类型是以string作为基础的,var2是消息具体内容,也就是说,当UJCat收到消息后会主动执行这个方法并传入消息的内容,你可以将你的处理消息的模块放到里面。
exception(int var1) : 当连接发生了故障后自动执行,其中传入的参数是故障类型,其实你只需要知道当有人拔网线,断网,主动断开等就会自动执行这个方法。
active() : 当连接成功后会自动执行该方法。
除了以上3个必须实现的方法外,还有一个发送消息的方法:sendMsg(String head, String body) ,你想要发送消息只需要调用次方法就可以了,传参不用多说,head是消息头可以用来写你的消息协议,body是消息内容。以上是基本方法,此外有一个属性可以值得使用者关注,那就是每一个继承了该业务类都只要连接成功都会由一个唯一的key,你可以通过这个userKey去管理你的网络连接对象或者说你的服务器用户。
这里以一个简单的服务器为例,这个服务器规则很简单收到用户消息后直接返回给用户,要注意的是服务器的业务类是MessageSelect 你的业务逻辑需要继承它,客户端的业务类名称是ClientService 同样的 他是一个业务类,特性都是一样的,你只需要注意什么时候继承哪一个就好,下面是代码:
public class TestServerSelect extends MessageSelect {
@Override
public void msgService(String var1, String var2) {
System.out.println("用户 " + userKey + " 发送了消息: [消息头] " + var1 + " [消息内容] " + var2);
sendMsg("0", "服务器以收到你的消息! : " + var2);
}
@Override
public void exception(int var1) {
System.out.println("用户 " + userKey + " 与服务器断开");
}
@Override
public void active() {
System.out.println("用户 " + userKey + " 以连接到服务器");
}
}
以上就是一个服务器所有所有代码,是不是很简单??
现在我们的服务器写好了,开始运行一下,一下是网络框架启动的代码示例:
public static void main(String[] args) throws InterruptedException {
//创建一个服务器对象
UJServer b = new UJServer();
//设置端口,同时将刚才写好的服务器业务类 添加进来
b.setServer(8099, TestServerSelect.class);
//启动服务器
b.ServiceStart();
}
这里我们的服务器监听8099端口,同时将刚才写好的类的class文件传入进去让后启动就大功告成!!,下面我用客户端测试一下服务器效果,客户端代码我就不贴出来了,思路和服务器端一样,也是写一个业务层,添加到客户端类然后启动。
以上就是一个简单的应答服务器。
该通讯框架的客户端与服务器之间有一个加密验证环节,加密器解密器都包含在了项目中,如果你只用其中的服务器或客户端,你的另外一端需要写加密解密验证。
该服务器由于限制用户最底层的消息类型是string而方便操作但是也因此效率相对变低了,由于基于Netty4,所以在多用户高并发上面比较稳定,一般的小项目或者新手想自己写一些带有网络通讯的项目都可以用该框架,目前这是一个早期版本,还有很多需要优化,会变得越来越稳定和简单易用,Unity版本的客户端过一段时间会更新,同时api也会慢慢完善。希望大家支持!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型