# GeneralBusServer **Repository Path**: Lqzhi/GeneralBusServer ## Basic Information - **Project Name**: GeneralBusServer - **Description**: 一个简单基于Netty编写的的TCP服务器依赖 - **Primary Language**: Unknown - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-07 - **Last Updated**: 2024-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: Netty, Java, TCP, Server, jar ## README # GeneralBusServer   一个使用Netty处理的TCP服务器。 > 使用说明 ```java public class 使用说明 { public static void main(String[] args) { //new一个对象,绑定服务器 GeneralBusServer server = new GeneralBusServer(8080); //在未启动之前,可以根据setSocketAddress更换地址 //server.setSocketAddress(new InetSocketAddress(10160)); server.start();//启动 //管理客户端 BusManager manager = server.getManager();//得到管理器 Collection allClient = manager.getAllClient();//得到所有客户端 Optional client = manager.getClient("key");//得到特定key的客户端,key为channel.id().asLongText() manager.addOnRegisterChannelListener(new BusManager.OnRegisterChannelListener() { @Override public void onHandler(Manager manager, String key, Channel value) { //回调客户端注册事件 } }); manager.addOnUnRegisterChannelListener(new BusManager.OnUnRegisterChannelListener() { @Override public void onHandler(Manager manager, String key, Channel value) { //回调客户端取消注册事件 } }); //manager.removeOnRegisterChannelListener();移除客户端注册事件监听 //manager.removeOnUnRegisterChannelListener();移除客户端取消注册事件监听 manager.resetManager();//移除所有监听器 //消息处理 BusPipeline pipeline = server.getPipeline();//得到消息管道 //处理读取 pipeline.registerReadMessageHandlers(new Consumer() { @Override public void accept(BusMessage busMessage) { String id = busMessage.getId(); //客户端的ID byte[] object = busMessage.getObject(); //客户端发来的数据 } }); //处理消息读取计数 pipeline.registerReadCountHandlers(new Consumer() { @Override public void accept(Long aLong) { } }); //处理读取消息错误 pipeline.registerReadMessageExceptionHandlers(new Consumer() { @Override public void accept(Exception e) { } }); //处理发送,当将消息发送到消息队列中后,将会有个默认处理写的监听器处理发送客户端事件, // 这个接口主要用于发送数据的判断的,或者移除默认的,写一个也行。 pipeline.registerWriteMessageHandlers(new Consumer() { @Override public void accept(BusMessage busMessage) { String id = busMessage.getId(); //客户端的ID byte[] object = busMessage.getObject(); //客户端发来的数据 } }); //处理写入消息计数 pipeline.registerWriteCountHandlers(new Consumer() { @Override public void accept(Long aLong) { } }); //处理写入消息计数 pipeline.registerWriteMessageExceptionHandlers(new Consumer() { @Override public void accept(Exception e) { } }); /*************还要与之相对应的取消监听的方法,在其前面加上un即可***************************************/ //pipeline.start();该方法是启动处理的线程,由server调用 //pipeline.destory();销毁管道,调用后将无法继续使用,由server调用,server停止后将销毁,后续无法继续使用服务器对象。 pipeline.setReadMessageDispose(new Function() { @Override public BusMessage apply(BusMessage busMessage) { //消息处理器,在处理接收信息之前,对信息进行处理 return null; } }); pipeline.setWriteMessageDispose(new Function() { @Override public BusMessage apply(BusMessage busMessage) { //消息处理器,在处理发送信息之前,对信息进行处理 return null; } }); long readCount = pipeline.readCount();//读计数 long writeCount = pipeline.writeCount();//写计数 } } ``` 随便用,如果用人用的话。