代码拉取完成,页面将自动刷新
一个使用Netty处理的TCP服务器。
使用说明
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<Channel> allClient = manager.getAllClient();//得到所有客户端
Optional<Channel> client = manager.getClient("key");//得到特定key的客户端,key为channel.id().asLongText()
manager.addOnRegisterChannelListener(new BusManager.OnRegisterChannelListener() {
@Override
public void onHandler(Manager<String, Channel> manager, String key, Channel value) {
//回调客户端注册事件
}
});
manager.addOnUnRegisterChannelListener(new BusManager.OnUnRegisterChannelListener() {
@Override
public void onHandler(Manager<String, Channel> manager, String key, Channel value) {
//回调客户端取消注册事件
}
});
//manager.removeOnRegisterChannelListener();移除客户端注册事件监听
//manager.removeOnUnRegisterChannelListener();移除客户端取消注册事件监听
manager.resetManager();//移除所有监听器
//消息处理
BusPipeline pipeline = server.getPipeline();//得到消息管道
//处理读取
pipeline.registerReadMessageHandlers(new Consumer<BusMessage>() {
@Override
public void accept(BusMessage busMessage) {
String id = busMessage.getId(); //客户端的ID
byte[] object = busMessage.getObject(); //客户端发来的数据
}
});
//处理消息读取计数
pipeline.registerReadCountHandlers(new Consumer<Long>() {
@Override
public void accept(Long aLong) {
}
});
//处理读取消息错误
pipeline.registerReadMessageExceptionHandlers(new Consumer<Exception>() {
@Override
public void accept(Exception e) {
}
});
//处理发送,当将消息发送到消息队列中后,将会有个默认处理写的监听器处理发送客户端事件,
// 这个接口主要用于发送数据的判断的,或者移除默认的,写一个也行。
pipeline.registerWriteMessageHandlers(new Consumer<BusMessage>() {
@Override
public void accept(BusMessage busMessage) {
String id = busMessage.getId(); //客户端的ID
byte[] object = busMessage.getObject(); //客户端发来的数据
}
});
//处理写入消息计数
pipeline.registerWriteCountHandlers(new Consumer<Long>() {
@Override
public void accept(Long aLong) {
}
});
//处理写入消息计数
pipeline.registerWriteMessageExceptionHandlers(new Consumer<Exception>() {
@Override
public void accept(Exception e) {
}
});
/*************还要与之相对应的取消监听的方法,在其前面加上un即可***************************************/
//pipeline.start();该方法是启动处理的线程,由server调用
//pipeline.destory();销毁管道,调用后将无法继续使用,由server调用,server停止后将销毁,后续无法继续使用服务器对象。
pipeline.setReadMessageDispose(new Function<BusMessage, BusMessage>() {
@Override
public BusMessage apply(BusMessage busMessage) {
//消息处理器,在处理接收信息之前,对信息进行处理
return null;
}
});
pipeline.setWriteMessageDispose(new Function<BusMessage, BusMessage>() {
@Override
public BusMessage apply(BusMessage busMessage) {
//消息处理器,在处理发送信息之前,对信息进行处理
return null;
}
});
long readCount = pipeline.readCount();//读计数
long writeCount = pipeline.writeCount();//写计数
}
}
随便用,如果用人用的话。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。