HappyChat-master

所属分类:Windows编程
开发工具:Java
文件大小:430KB
下载次数:2
上传日期:2017-11-22 16:03:30
上 传 者testqqqq
说明:  netty编程的聊天系统实际案例,对于你了解netty有很大的帮助
(The actual case of netty programming, for your understanding of the netty has great help)

文件列表:
HappyChat.iml (1339, 2017-10-26)
LICENSE (11342, 2017-10-26)
docs (0, 2017-10-26)
docs\arclist (0, 2017-10-26)
docs\arclist\1.gif (1810, 2017-10-26)
docs\arclist\10.gif (3834, 2017-10-26)
docs\arclist\11.gif (8033, 2017-10-26)
docs\arclist\12.gif (2247, 2017-10-26)
docs\arclist\13.gif (1736, 2017-10-26)
docs\arclist\14.gif (4116, 2017-10-26)
docs\arclist\15.gif (1562, 2017-10-26)
docs\arclist\16.gif (3113, 2017-10-26)
docs\arclist\17.gif (8137, 2017-10-26)
docs\arclist\18.gif (8135, 2017-10-26)
docs\arclist\19.gif (1808, 2017-10-26)
docs\arclist\2.gif (1582, 2017-10-26)
docs\arclist\20.gif (1864, 2017-10-26)
docs\arclist\21.gif (3045, 2017-10-26)
docs\arclist\22.gif (1950, 2017-10-26)
docs\arclist\23.gif (2257, 2017-10-26)
docs\arclist\24.gif (2446, 2017-10-26)
docs\arclist\25.gif (4013, 2017-10-26)
docs\arclist\26.gif (2653, 2017-10-26)
docs\arclist\27.gif (3376, 2017-10-26)
docs\arclist\28.gif (4907, 2017-10-26)
docs\arclist\29.gif (1780, 2017-10-26)
docs\arclist\3.gif (1804, 2017-10-26)
docs\arclist\30.gif (5725, 2017-10-26)
docs\arclist\31.gif (7369, 2017-10-26)
docs\arclist\32.gif (4454, 2017-10-26)
docs\arclist\33.gif (2140, 2017-10-26)
docs\arclist\34.gif (13392, 2017-10-26)
docs\arclist\35.gif (1417, 2017-10-26)
docs\arclist\36.gif (1674, 2017-10-26)
docs\arclist\37.gif (1798, 2017-10-26)
docs\arclist\38.gif (10446, 2017-10-26)
docs\arclist\39.gif (3368, 2017-10-26)
docs\arclist\4.gif (1852, 2017-10-26)
... ...

# HappyChat 基于Netty实现的WebSocket聊天室,实现的功能如下:
1. 支持昵称登录;
2. 支持多人同时在线;
3. 同步显示在线人数;
4. 支持文字和表情的内容;
5. 浏览器与服务器保持长连接,定时心跳检测;

## 服务器 服务器端使用Netty作为通信框架,支持客户端通过WebSocket通信。服务器会检测链路是否处于空闲,如果60秒内没有收到客户端的任何消息,那么服务器会主动关闭该链路。

为保证链路的可用性,服务器会定时发送Ping消息给客户端,客户端收到Ping消息后,必须回一个Pong消息响应,避免链路由于空闲而被关闭。

客户端连接服务器之后,需要提供昵称给服务器,服务器保存每一个用户的昵称和相关的链路信息,用于后续的聊天显示。

客户端发送聊天消息到服务器之后,服务器不会存储聊天消息,而是直接转发给其它的客户端。

## 客户端 由于是通过WebSocket协议来接入,所以浏览器作为客户端的话,必须支持WebSocket协议,现在项目中已经提供了Html页面的客户端,访问地址如下:
[http://chat.wolfbe.com](http://chat.wolfbe.com "嗨皮聊天室 | WOLFBE.COM")
在项目的doc文件夹下包含了客户端的HTML源码,有兴趣的童鞋可以参考一下。

## 协议 协议比较简单,所有的消息都一个Json字符串,格式如下:
`head | body | extend`
* head作为头部,用int类型存储,4个字节; * body 消息的有效载体,用string类型存储,长度无限度; * extend 协议的扩展字段,用map类型存储;

由于在解码消息时使用的是Netty自带的WebSocket的解码器,只支持文本帧的消息,解码出来的都是一个完整的帧消息,即上面格式的消息,所以协议上没有用长度字段。

## 交流 如果有兴趣交流Netty相关知识,可以加入**Netty联盟群:37911***16**

## 赞助 如果觉得项目还不错,想要表达些什么的话,可以上[爱淘汇:http://itao.wolfbe.com](http://itao.wolfbe.com) 领淘宝天猫的优惠券,领取优惠券再下单可以省不少钱喔。你们使用这些优惠券购买东西时,我也可以得到一些佣金的,多谢支持!!!



近期下载者

相关文件


收藏者