需求

每隔几秒主动调用api拉取信息,会对服务器造成很大的压力,特别对于小型应用,只有一台服务器,配置也不高。客户端要实时的接收一些消息,消息推送也提升了用户的体验。很有必要。

思路
  • 使用RabbitMQ接收消息,再推送给客户端
  • 使用gin http api接收消息,再推送给客户端
  • 客户端通过websocket连接到推送服务,然后等待接收消息并处理消息
  • 使用jwt-token验证客户端真实性,确定用户身份
实现

设置模块

读取进行目录的config.toml文件,做为配置文件。

rabbit_conn_str RabbitMQ消息队列配置串,root是用户名,123是密码,@后为主机端口,/test是租户
jwt_secret jwt使用的加密串,与主服务保证一致
public_key_path private_key_path https配置,公钥与私钥,不配置不开启https
http_port http服务端口号
white_ips gin http 服务的白名单,使用白名单简单验证接口调用者的身份
rabbit_conn_str = "amqp://root:123@localhost:5672/test" #2323
jw