自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (3)
  • 收藏
  • 关注

原创 简易聊天系统-客户端介绍

桌面客户端由于审美观原因,抄了一个QT开源IM聊天客户端,将其tcp协议改成websocket并加上自己需要的功能。 源地址如下:https://blog.csdn.net/nigoole/article/details/74188554 以上为桌面端,下面是微信小程序,我将其放进之前的抢座小程序中了(之前博客有介绍) ...

2020-05-14 12:07:33 439 1

原创 简易聊天系统-聊天服务

聊天负责私人聊天,群组聊天。私人聊天接受信息后保存至数据库再转发给目标用户。群组聊天当前没有离线消息保存,也就是用户登录后无法知道多少消息未读,而是直接拉取指定数量群聊天。当有成员发送后会将聊天信息存储数据库(没有缓存进redis,因为在线用户会直接发送,目前没有这个优化必要),从redis中检索所有群组在线用户并通过消息队列发送至对应网关。 大致代码如下: // 处理群消息 func DealGroupMsg(delivery *amqp.Delivery, transfer1 *transfer)

2020-05-14 11:49:47 1394

原创 简易聊天系统-群组服务

群组服务负责群组日常管理,申请进群,创建群,获取群成员,与用户服务类似。 基本代码如下: func DealMsg(delivery *amqp.Delivery) { var json = jsoniter.ConfigCompatibleWithStandardLibrary var transfer1 transfer err := json.Unmarshal(delivery.Body, &transfer1) Type := transfer1.Data.Type if

2020-05-14 11:40:48 262

原创 简易聊天系统-用户服务

用户服务负责注册,更改密码,用户登录,添加好友,获取好友关系,下线上线通知等。 添加好友需要两段处理,首先将验证请求并存入数据库,再判断好友用户是否在线,在线则直接发送请求给好友用户,否则将在用户登陆时检索请求数据库再发送好友请求。 大致代码如下: // 用户处理好友请求 func DealAddFriend(delivery *amqp.Delivery, transfer1 *transfer) { // Ack := false // defer func() { // deliver

2020-05-14 11:35:27 264

原创 简易聊天系统-消息转发服务器

消息转发服务器用来接受来自消息队列的数据,并对其进行解码、识别等,最后分好类别。比如聊天系统,会将同一个群组 同一个会话的消息转发至同一组服务(当然现在还没实现转发同一组服务),基本思想为群号 QQ号之类弄一个hash然后转发,或者监控各个服务的负载程度将新开的聊天转移至相应的聊天服务。如果识别失败,消息转发服务器并不会处理消息而是将消息保留至消息队列并提示,如果需要在线升级添加新的服务,只需要逐步升级消息转发服务即可。 基本代码逻辑如下: // 处理 func DealMsg(delivery am

2020-05-14 11:28:23 929

原创 简易聊天系统-网关

网关负责客户端的接入,因为时间原因都使用了websocket协议,目前只做到固定网关,也就是客户端直接连接指定网关。后面优化则会有一个网关发现服务,提供http接口返回目前最佳网关。 网关使用了 github.com/gorilla/websocket 提供的框架,主要负责处理客户端的连接,数据识别、转发数据。网关接受来自用户的数据并判断其类型,未登录用户不能发送非登录类型数据,确认正常数据后直接存进消息队列中。并且接受来自消息队列传来的信息,转发至对应客户端中。 接受来自客户端的数据: func.

2020-05-14 11:19:57 332

原创 简易聊天系统-介绍

之前做了个简易聊天系统,到今天才有时间回顾 大致结构如下: 目前有两种版本客户端,桌面端使用C++编写,手机端使用微信小程序,整个项目两个月稳定运行。后面想将此项目放入k8s中进行自动管理。 ...

2020-05-14 11:06:06 750

TPC-H_Tools_v2.18.0.zip

TPC-H是事务处理性能委员会( Transaction ProcessingPerformance Council )制定的基准程序之一,TPC- H 主要目的是评价特定查询的决策支持能力,该基准模拟了决策支持系统中的数据库操作,测试数据库系统复杂查询的响应时间,以每小时执行的查询数(TPC-H QphH@Siz)作为度量指标。

2020-08-11

BOOST库1_65_1

Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中使用需要谨慎

2017-10-08

Git-2.14.1-64-bit.exe

GIT

2017-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除