博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java+Netty、Vue+Element-UI实现的即时通信应用 leo-im
阅读量:7118 次
发布时间:2019-06-28

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

之前工作接触了几个开源的IM产品,再加上曾经用Netty实现过几个服务,于是就有了用Netty实现一个IM的想法,于是用业余时间写了一个IM,和喜欢Netty的程序员们分享。

Leo-IM

考虑到方便扩展,在服务端采用了Http+Socket结合的设计,客户端所有的请求都基于Http,如发送消息、修改个人信息等,所有的消息推送采用Socket方式即时推送到客户端,这样的设计可以在并发访问量大的情况下,将Http服务与Socket服务分开部署,减小各自的访问压力。

Http服务也基于Netty实现,在Netty之上做了扩展,参考Spring MVC注解实现了netty-rest-server(netty-rest-server),使用该框架,可实现注解注入REST controller,实现统一异常处理控制器和拦截器(如跨域拦截器、身份验证拦截器等)。

Http服务和Scoket服务之间的解耦和通讯可使用Java内置的队列或Redis发布/订阅实现,消息处理器接收到任务后,会将该任务交由线程池处理,处理后通过GroupChannel发送广播或发给指定的Channel。

前端基于Vue+Element-UI开发,建议使用Chrome浏览器体验。

测试用户:test1、test2、test3,口令均为:123456

转载于:https://blog.51cto.com/lining90567/2130559

你可能感兴趣的文章
mvvm windows app DataBinding
查看>>
Struts2_day02--Action获取表单提交数据
查看>>
博客作业01-抽象数据类型
查看>>
leetcode357
查看>>
leetcode474
查看>>
jquery Ajax跨域调用WebServices方法
查看>>
Android中实现圆角矩形及半透明效果。
查看>>
Redis系列十:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
查看>>
gitlab本地部署方法(ubuntu16.04+gitlab9.5.5)
查看>>
《Linux程序设计》笔记(二)shell程序设计
查看>>
mysql修改端口经验
查看>>
在床上手机看完电影让电脑关机 休眠 golang源码--配合手机ES浏览器开一个FTP
查看>>
java操作properties文件
查看>>
C语言内存讲解
查看>>
域名解析记录
查看>>
EF支持复杂类型的实现
查看>>
快速入门系列--WCF--07传输安全、授权与审核
查看>>
React-Native 工程添加推送功能 (iOS 篇)
查看>>
JavaScript初探四
查看>>
Ext 随笔
查看>>