• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

天际夜游者/fishpond

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

fishpond

开源软件地址:

https://gitee.com/navigatorCode/fishpond

开源软件介绍:

鱼塘(fishpond)

该软件默认为群聊模式即用户登录成功并成功通过TCP注册,所有用户就属于同一个群里面,每个用户发送的群聊消息,所有用户均可见。一对一单聊目前正在开发中,目前计划用户可以通过上传自定义公钥(可选),一对一聊天时将使用该公钥加密传输。

项目结构

fishpond├── core     -- 工具类及通用代码├── app      -- Javafx实现桌面客户端├── mapper   -- 数据库相关实体类├── server   -- 服务端(TCP+HTTP)接口├── protocol -- 具体协议实现(java版)├── web      -- Vue实现WEB客户端└── mobile   -- flutter实现移动客户端

通讯协议

通信格式

字节1-34-56-78-1112-1516-4748-4950....
内容FPD消息类型业务代码用户账号(from)用户账号(to)消息ID数据长度数据内容
  • FPD为消息固定标识
  • 消息类型,目前仅支持普通文本、json数据、二进制数据,后期可能会有其他扩展,具体请查看数据类型
  • 业务代码,当前消息所要执行的操作,具体请查看业务代码
  • 用户账号,在当前系统中已注册用户系统分配账号。
  • 数据长度,占用2个字节,也就是说当前协议最多允许传递64kb数据,大于该数据长度将无法传递。
  • 数据内容,具体传输数据

具体协议

  • 用户登录

URL:/user/login

{  "username": 752544765,  "password": "MD5加密字符串"}
  • TCP会话注册
业务代码消息类型fromto
1JSON00
{  "sessionId": "50E0D9BA8B8544BF81977DA847245EC5"}

其中sessionId由用户登录接口返回。

  • TCP心跳
业务代码消息类型fromto
0TEXT00
  • 群聊消息
业务代码消息类型fromto
5JSON00
  • 一对一单聊(开发中)
业务代码消息类型fromto
6JSON0指定用户账号

消息结构说明

{  "timestamp": 16555526684,  "items": [    {      "type": 0,      "message": "Hello,World!"    },    {      "type": 1,      "message":"https://t7.baidu.com/it/u=727460147,2222092211&fm=193&f=GIF"    }  ]}

正如上面看到结构体一样,正常消息包含两个字段timestampitems字段。其中timestamp为发送消息时的时间戳,items为发送消息内容其中type消息内容,message为具体消息内容客户端收到该消息后可以自己决定如果布局显示。

客户端

本系统提供一个使用javafx实现的客户端,由于没有专业美工及个人审美能力较差,实现的客户端较丑,用户可以通过上面的通讯协议使用熟悉技术实现自己满意的客户端。

程序快照

登录界面

主界面

Q&A

  • FROM和TO如何确定

FROM为发送信息用户账号,TO为接收信息用户账号。FROM字段用户在发送消息时可以以0填充,实际消息通过TCP服务器时由服务器来确定该值,TO必须指定为特定用户账号,这里有个特例系统账户为0,因此如果TO为0则是将消息发送给服务器。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap