首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

netty搭建web聊天室(3)单聊

上节课讲了群聊,这次来说说单聊,单聊要比群聊复杂点,但是代码也不是很多,主要是前端显示比较麻烦点。

效果:

图片描述

登陆

首先一个新的用户,需要先登陆,输入自己的昵称,然后点击登陆。后端服务会把你的用户名和当前的线程进行邦定,这样就可以通过你的用户名找到你的线程。登陆成功,后端返回定义好的消息 ,前端判断记录,这样给别人发消息时就可以携带自己的信息。

图片描述

查找用户

在输入框输入用户名,就可以返回对应的用户的线程,这样你就可以把消息发送给你要聊天的对象。如果不存在,后端回返回消息给前端,该用户不存在。如果存在,就记录此用户名到中,这样你发送消息的时候就可以发送给对应用户了。

图片描述

开始聊天

发送聊天信息时,这样后端就知道是谁要发给谁,根据用户名去找到具体的线程去单独推送消息,实现单聊。

前端待完善

左侧聊天列表没有实现,每搜索一个在线用户,应该动态显示在左侧,点击该用户,动态显示右侧聊天窗口进行消息发送。现在是你和所有人的单聊消息都会显示在右侧,没有完成拆分,因为这是一个页面,处理起来比较麻烦,我一个后端就不花时间搞了,感兴趣的可以自己去实现。

前端代码

因为注视比较详细,就直接复制整个代码到这里,大家自己看。

后端改造

加入一个,邦定user和Channel

改造

注释很详细,自己看

总结

消息模型应该定义一个单独的类来管理,我目前是用的字符串来判断,提前规定了一些模型,通过判断来响应前端的请求,比较简单。还有就是没有使用数据库,前端不能显示聊天记录,不能实现消息的已读未读。实际场景中应该对消息进行加密存储,且不能窥探用户隐私。

前端可以使用来存储聊天记录,自己可以扩展。

前端的显示可能有点问题,自己可以调。其实主要是学习netty后端的搭建

别忘了关注我

mike啥都想搞

求关注啊。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190123G19XKO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券