Skip to content
目录

配置说明

配置文件

配置文件默认在此目录下(如果没有就创建一个): ~/wukongim/wk.yaml

默认使用最优配置,所以需要配置什么就打开对应注释即可

配置采用yaml格式,如果发现配置什么都不生效,请检查缩进是否正确

yaml
## 配置是yaml格式,请严格注意缩进.

mode: "release" # 运行模式 模式 debug 测试 release 正式 bench 压力测试
#addr: "tcp://0.0.0.0:5100" # tcp监听地址
#httpAddr: "0.0.0.0:5001" #  http api的监听地址  默认:0.0.0.0:5001
#dataDir: "~/wukongim" # 数据存储目录
#tokenAuthOn: false # 是否开启token验证 默认为false,如果不开启任何人都可以连接到此节点,生产环境建议开启
#managerUID: "" # 管理员UID  默认为 ____manager
#managerToken: "" # 管理员token 如果此字段有值,则API接口需要在请求头中添加token字段,值为此字段的值
#wsAddr: "ws://0.0.0.0:5200"  # websocket ws 监听地址 
#wssAddr: "wss://0.0.0.0:5210"  # websocket wss 监听地址 如果打开则需要进行 wssConfig相关的证书配置
#whitelistOffOfPerson: true # 是否关闭个人白名单 默认为true表示关闭个人白名单的验证
external: # 公网配置
   ip: "" # 节点外网IP,客户端能够访问到的IP地址,如果客户端是内网使用,这里也可以填写内网IP
#  tcpAddr: "" #  默认自动获取, 节点的TCP地址 对外公开,APP端长连接通讯  格式: ip:port  (支持域名配置)
#  wsAddr: "" # 默认自动获取, 节点的wsAdd地址 对外公开 WEB端长连接通讯 格式: ws://ip:port  (支持域名配置)
#  wssAddr: "" # 对外的wssAddr地址,也就是客户端真正连接的地址 格式:wss://ip:port (支持域名配置)
#  monitorAddr: "" # 默认自动获取, 节点的monitor地址 对外公开 监控服务 格式: ip:port
#  apiUrl: "" # 默认自动获取, 节点的http地址 对外公开 http api 格式: http://ip:port
#wssConfig:
#  certFile: "" # wss证书文件路径
#  keyFile: "" # wss证书key文件路径
#ginMode: "release" # gin框架的模式 debug 调试 release 正式 test 测试
#logger: 
#  level: 0 # 日志级别 0:未配置,将根据mode属性判断 1:debug 2:info 3:warn 4:error
#  dir: "./logs" # 日志目录
#  lineNum: false # 是否打印行号
#monitor: 
#  on: true # 是否开启监控
#  addr: "0.0.0.0:5300" # 监控监听地址 默认为 0.0.0.0:5300
#demo: 
#  on: true # 是否开启demo
#  addr: "0.0.0.0:5172" # demo监听地址 默认为 0.0.0.0:5172
#channel:
#  cacheCount: 1000 # 频道缓存数量 频道被加载后会缓存到内存中,如果频道数量过多,会占用大量内存,可以通过此配置限制缓存数量
#  createIfNoExist: true # 频道不存在时是否自动创建 默认为true
#  subscriberCompressOfCount: 0 #  订阅者数多大开始压缩,如果开启默认采用gzip压缩(离线推送的时候订阅者数组太大 可以设置此参数进行压缩 默认为0 表示不压缩 )
#tmpChannel:
#  suffix: "@tmp" # 临时频道后缀 带有此后缀的频道将被认为是临时频道,临时频道不会被持久化
#  cacheCount: 500 # 临时频道缓存数量
#webhook: # 两者配其一即可 webhook配置 用于接收消息通知事件,详情请查看文档
#  httpAddr: "" # webhook的http地址 通过此地址通知数据给第三方 地址为你提供的api接口地址
#  grpcAddr: "" #  webhook的grpc地址 当前httpAddr成为瓶颈的时候可以用grpc进行推送, 如果此地址有值 则不会再调用httpAddr配置的地址,格式为 ip:port,通讯协议请查看文档
#  msgNotifyEventPushInterval: 500ms # 消息通知事件推送间隔,默认500毫秒发起一次推送
#  msgNotifyEventRetryMaxCount: 5 # 消息通知事件消息推送失败最大重试次数 默认为5次,超过将丢弃
#  msgNotifyEventCountPerPush: 100 # 每次webhook消息通知事件推送消息数量限制 默认一次请求最多推送100条
#datasource: #  数据源配置,不填写则使用自身数据存储逻辑,如果填写则使用第三方数据源,数据格式请查看文档
#  addr: "" #  数据源地址
#  channelInfoOn: false #  是否开启频道信息数据源的获取
conversation: # 最近会话配置
   on: true # 是否开启最近会话
#  cacheExpire: 1d # 最近会话缓存过期时间 默认为1天,(注意:这里指清除内存里的最近会话缓存,并不表示清除最近会话)
#  syncInterval: 5m # 最近会话保存间隔,每隔指定的时间进行保存一次 默认为5分钟
#  syncOnce: 100 # 最近会话同步保存一次的数量 超过指定未保存的数量 将进行保存 默认为100
#  userMaxCount: 1000 # 用户最近会话最大数量,超过此数量的最近会话后最旧的那条将被覆盖掉 默认为1000
#messageRetry: # 消息重试配置
#  interval: 60s # 重试间隔 默认为60秒  
#  scanInterval: 5s  # 每隔多久扫描一次超时队列,看超时队列里是否有需要重试的消息
#  maxCount: 5    # 消息最大重试次数, 服务端持有用户的连接但是给此用户发送消息后在指定的间隔内没有收到ack,将会重新发送,直到超过maxCount配置的数量后将不再发送(这种情况很少出现,如果出现这种情况此消息只能去离线接口去拉取)
#userMsgQueueMaxSize: 0 #  用户消息队列最大大小,超过此大小此用户将被限速,0为不限制
## 配置是yaml格式,请严格注意缩进.

mode: "release" # 运行模式 模式 debug 测试 release 正式 bench 压力测试
#addr: "tcp://0.0.0.0:5100" # tcp监听地址
#httpAddr: "0.0.0.0:5001" #  http api的监听地址  默认:0.0.0.0:5001
#dataDir: "~/wukongim" # 数据存储目录
#tokenAuthOn: false # 是否开启token验证 默认为false,如果不开启任何人都可以连接到此节点,生产环境建议开启
#managerUID: "" # 管理员UID  默认为 ____manager
#managerToken: "" # 管理员token 如果此字段有值,则API接口需要在请求头中添加token字段,值为此字段的值
#wsAddr: "ws://0.0.0.0:5200"  # websocket ws 监听地址 
#wssAddr: "wss://0.0.0.0:5210"  # websocket wss 监听地址 如果打开则需要进行 wssConfig相关的证书配置
#whitelistOffOfPerson: true # 是否关闭个人白名单 默认为true表示关闭个人白名单的验证
external: # 公网配置
   ip: "" # 节点外网IP,客户端能够访问到的IP地址,如果客户端是内网使用,这里也可以填写内网IP
#  tcpAddr: "" #  默认自动获取, 节点的TCP地址 对外公开,APP端长连接通讯  格式: ip:port  (支持域名配置)
#  wsAddr: "" # 默认自动获取, 节点的wsAdd地址 对外公开 WEB端长连接通讯 格式: ws://ip:port  (支持域名配置)
#  wssAddr: "" # 对外的wssAddr地址,也就是客户端真正连接的地址 格式:wss://ip:port (支持域名配置)
#  monitorAddr: "" # 默认自动获取, 节点的monitor地址 对外公开 监控服务 格式: ip:port
#  apiUrl: "" # 默认自动获取, 节点的http地址 对外公开 http api 格式: http://ip:port
#wssConfig:
#  certFile: "" # wss证书文件路径
#  keyFile: "" # wss证书key文件路径
#ginMode: "release" # gin框架的模式 debug 调试 release 正式 test 测试
#logger: 
#  level: 0 # 日志级别 0:未配置,将根据mode属性判断 1:debug 2:info 3:warn 4:error
#  dir: "./logs" # 日志目录
#  lineNum: false # 是否打印行号
#monitor: 
#  on: true # 是否开启监控
#  addr: "0.0.0.0:5300" # 监控监听地址 默认为 0.0.0.0:5300
#demo: 
#  on: true # 是否开启demo
#  addr: "0.0.0.0:5172" # demo监听地址 默认为 0.0.0.0:5172
#channel:
#  cacheCount: 1000 # 频道缓存数量 频道被加载后会缓存到内存中,如果频道数量过多,会占用大量内存,可以通过此配置限制缓存数量
#  createIfNoExist: true # 频道不存在时是否自动创建 默认为true
#  subscriberCompressOfCount: 0 #  订阅者数多大开始压缩,如果开启默认采用gzip压缩(离线推送的时候订阅者数组太大 可以设置此参数进行压缩 默认为0 表示不压缩 )
#tmpChannel:
#  suffix: "@tmp" # 临时频道后缀 带有此后缀的频道将被认为是临时频道,临时频道不会被持久化
#  cacheCount: 500 # 临时频道缓存数量
#webhook: # 两者配其一即可 webhook配置 用于接收消息通知事件,详情请查看文档
#  httpAddr: "" # webhook的http地址 通过此地址通知数据给第三方 地址为你提供的api接口地址
#  grpcAddr: "" #  webhook的grpc地址 当前httpAddr成为瓶颈的时候可以用grpc进行推送, 如果此地址有值 则不会再调用httpAddr配置的地址,格式为 ip:port,通讯协议请查看文档
#  msgNotifyEventPushInterval: 500ms # 消息通知事件推送间隔,默认500毫秒发起一次推送
#  msgNotifyEventRetryMaxCount: 5 # 消息通知事件消息推送失败最大重试次数 默认为5次,超过将丢弃
#  msgNotifyEventCountPerPush: 100 # 每次webhook消息通知事件推送消息数量限制 默认一次请求最多推送100条
#datasource: #  数据源配置,不填写则使用自身数据存储逻辑,如果填写则使用第三方数据源,数据格式请查看文档
#  addr: "" #  数据源地址
#  channelInfoOn: false #  是否开启频道信息数据源的获取
conversation: # 最近会话配置
   on: true # 是否开启最近会话
#  cacheExpire: 1d # 最近会话缓存过期时间 默认为1天,(注意:这里指清除内存里的最近会话缓存,并不表示清除最近会话)
#  syncInterval: 5m # 最近会话保存间隔,每隔指定的时间进行保存一次 默认为5分钟
#  syncOnce: 100 # 最近会话同步保存一次的数量 超过指定未保存的数量 将进行保存 默认为100
#  userMaxCount: 1000 # 用户最近会话最大数量,超过此数量的最近会话后最旧的那条将被覆盖掉 默认为1000
#messageRetry: # 消息重试配置
#  interval: 60s # 重试间隔 默认为60秒  
#  scanInterval: 5s  # 每隔多久扫描一次超时队列,看超时队列里是否有需要重试的消息
#  maxCount: 5    # 消息最大重试次数, 服务端持有用户的连接但是给此用户发送消息后在指定的间隔内没有收到ack,将会重新发送,直到超过maxCount配置的数量后将不再发送(这种情况很少出现,如果出现这种情况此消息只能去离线接口去拉取)
#userMsgQueueMaxSize: 0 #  用户消息队列最大大小,超过此大小此用户将被限速,0为不限制

环境变量

**悟空 IM**可以通过配置环境变量来覆盖配置文件的配置。

比如配置文件里的 webhook 地址配置

文件的格式:

yaml
...

webhook
  httpAddr: "http://xxxxxx"
...
...

webhook
  httpAddr: "http://xxxxxx"
...

环境变量的格式:

WK_WEBHOOK_HTTPADDR: http://xxxxxx
WK_WEBHOOK_HTTPADDR: http://xxxxxx

规则 WK为固定前缀,层级关系通过 "_"符号隔开,全都大写

本文档内容版权属于 上海信必达网络科技有限公司,保留所有权利