博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
netty简单聊天程序之单聊
阅读量:5744 次
发布时间:2019-06-18

本文共 1533 字,大约阅读时间需要 5 分钟。

hot3.png

  1. 根据netty的websoctet实现单聊
这里在传输的数据格式用文本转JSON的@Override	protected void channelRead0(ChannelHandlerContext ctx,		  TextWebSocketFrame msg) throws Exception { // (1)		  ObjectMapper mapper = new ObjectMapper();		  Message message = mapper.readValue(msg.text(), Message.class);		  		  Channel incoming = ctx.channel();		  if(null!=message) {			  if(ChatType.BIND.equals(message.getCmd())){//绑定上线				  ChannelManager.addChannel(message.getFrom(), incoming);			  }else if(ChatType.LEAVE.equals(message.getCmd())) {				  ChannelManager.removeChannelByCode(message.getFrom());			  }else if(ChatType.SINGLE.equals(message.getCmd())) {				  message.setMsg(HtmlUtils.htmlEscape(message.getMsg()));				  if(null!=ChannelManager.getChannel(message.getAccept())) {				    ChannelManager.getChannel(message.getAccept()).writeAndFlush(new TextWebSocketFrame(mapper.writeValueAsString(message))); 				  }else {					 String from=message.getFrom();					 message.setFrom(message.getAccept());					 message.setAccept(from);					 message.setMsg("["+message.getFrom()+"]未上线");					 incoming.writeAndFlush(new TextWebSocketFrame(mapper.writeValueAsString(message)));				  }			  }else if(ChatType.GROUP.equals(message.getCmd())) {				  message.setMsg(HtmlUtils.htmlEscape(message.getMsg()));			  }else {				  System.out.println("未识别的命令");			  }		  }	}
  1. 简单的数据格式
private String cmd;//1.绑定上线 2.下线 3.单聊 4.群聊	private String from;//用户ID	private String accept;//接受ID	private String group;//组ID	private String msg;//文本信息
  1. 效果

转载于:https://my.oschina.net/findurl/blog/2396989

你可能感兴趣的文章
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
lvm讲解,磁盘故障小案例
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
经过这5大阶段,你离Java程序员就不远了!
查看>>
IntelliJ IDEA 连接数据库详细过程
查看>>
thymeleaf 学习笔记-基础篇
查看>>
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
工作中如何做好技术积累
查看>>
怎么用sysLinux做U盘双PE+DOS??
查看>>
Spring Transactional
查看>>
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>