MSChatServerLib

module
v0.0.0-...-97150c2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2025 License: Apache-2.0

README

MSChatServerLib

一些通用的库

common

cache

对 pkg/cache 的封装

constant

常量定义,包括群,频道,社区等定义

msg

消息相关的常量定义,根据两个id生成虚拟id和还原

page

页格式的封装

config

asynctask

主要是对machinery/v2的封装, 支持创建,注册,发送任务

config

各种配置,比如缓存、文件、推送、系统账户等

context

事件上下文封装,在线状态封装,消息监听相关

elastic

获取elastic客户端

msg

消息,好友处理,频道管理等类型和方法的定义

msg_channel

更新频道

msg_group

群相关操作,主要是会在群中产生消息的操作

msg_rtc

通话相关

seq

生成序列号,包括当前序号和最大序号。步长1000

stream

开启流和结束流

tracer

主要是对jaeger库的封装,以及空标签的定义

model

channel

响应数据的模型定义

respond

一些接口的模型定义

pkg

cache
cache

缓存接口

db

数据库连接

db

一些通用函数,比如自定义时间类型的序列化和反序列化,用于描述创建时间和修改时间

mysql

新建会话,数据库迁移,sql文件查找

redis

新建连接

sqlite

新建会话并迁移

keylock

关键字锁

log

日志管理,使用Uber开源的zap库

logger

多种级别的日志输出

options

日志配置

redis

Redis相关的操作,比如 Set, Del, Hget 等。

markdown

将markdown转换为html。

msevent

事件定义

mshook

grpc生成的代码

mshttp

主要是对 gin 的封装,还包括一些认证、封装

msrsa

用 rsa 密钥生成 md5 签名

network

get, put, post 等操作

pool

池,实现了工作者,任务队列,分发器

dispatcher

分发器内部使用 ans.Pool, 负载过高时输出提示

queue

任务队列,使用锁和条件变量实现 push, pop 等操作

worker

任务接口,工作者接口,开始、结束工作

register

注册模块,路由定义

util

字符串,时间,加密等基础工具

aes

aes加密。现代密码学似乎都在往公开的方向发展,大抵是因为目标从无法攻克转移到提升攻克难度。

aes的保障大概是因为域之类的东西,当然可以在程序员的视角,简单的看成运算符重载。重载后的异或+条件判断带来多种可能。

大致流程为初始变换、循环运算,最终轮。循环运算包含字节代换,行移位,轮密钥加。当然实际操作过程还要考虑填充等细节。

详细的移步博客(详细文章待施工)

base62

十进制转62进制

common

substr, MapToQueryParamSort, Sign

decimal

精确的小数计算。

四舍五入,银行家舍入等多种舍入。

序列化反序列化。

要看懂得复习一下数电的IEEE 754标准。

dh

Curve25519算法,生成密钥对、计算加密密钥。

hash

使用CRC32通过一个字符串生成一个32位的整数。

ip

查询服务器、客户端ip地址。根据ip查询地址(使用高德api)。

json

obj和json,json和map的转换。

md5

MD5加密,SHA1加密,使用sha1作为哈希的HMAC加密。

page

页结构体

qreflect

通过反射获取所有属性,并以下划线形式返回

sha

sha256加密

sign

为一个map生成签名。

string

字符串处理,包括:

驼峰转下划线,下划线转驼峰,获取uuid,随机生成

stringbuffer

实现Append,传入interface{},写入到Buffer

time

时间格式化处理。

uuid

uuid相关。使用的是 Maxim Bublis 开源的 uuid 库。

yuan_cent

调用decimal实现元-分互转

wait

等待-触发机制,可以注册id,向所有注册了的发数据

server

启动server,http,https服务等

testutil

测试

Directories

Path Synopsis
pkg
db
log
util
Package decimal implements an arbitrary precision fixed-point decimal.
Package decimal implements an arbitrary precision fixed-point decimal.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL