经过几个月的努力,利用业余时间终于做成了一个聊天系统,虽然还不完善,但是基本上可以使用了。先拿出来跟大家分享一下,后面再逐步完善。希望大家多多支持!
一、项目介绍
phoenix-im:本项目是一套基于vert.x
开发的即时通信系统,项目代号凤雏
。(不知道为什么现在一说凤雏第一反应出来的画面是大聪明
)Vert.x
是一套基于Netty
的Tool-kit
,最大的特点在于异步,大大降低了传统阻塞模型中线程对于操作系统的开销。因此相比较传统的阻塞模型,异步模型能够很大层度的提高系统的并发量。因此phoenix-im
可以在占用资源很少的情况下可以支持百万级别的并发。通信协议使用http
、websocket
,支持web形式的网页客户端 。服务端使用vert.x
开发,要求JDK的版本为1.8以上。
二、系统架构
系统同时采用http
和websocket
协议。其中用户登录,查询联系人等动作使用http
协议完成,发送和接收消息等需要长连接的处理使用websocket
协议。系统架构如下图所示: