文档中心
官网

GoMeEdu服务

环境要求

GoMeEdu 程序是使用 golang 开发的实现 meedu 的直播部分功能的程序。它提供了高性能的聊天室的服务和部分直播业务接口,为直播系统稳定运行承担不小的力量。在您编译 gomeedu 程序之前,需要您本地安装有 go 程序。

请打开 https://go.dev/dl/ 下载最新版本的 golang 软件包并进行安装,安装完成之后,可以在命令行中执行

go version
go version go1.20.6 darwin/arm64

看到当前安装的 golang 版本。

编译程序

交付给客户的程序源代码中,有一个 go-meedu-v4.9.1.zip 的压缩包(注意,随着版本的迭代,v4.9.1这个版本号可能会变更)。

解压此压缩包,并进入到解压后的目录,执行下面命令:

go generate

之后再执行

go build -o go-meedu-amd64 -trimpath -ldflags "-s -w" .

命令解释如下:

参数解释
-o go-meedu-amd64指定输出文件的名称为 go-meedu-amd64
-trimpath在构建过程中去除构建路径信息,以减小可执行文件的大小
-ldflags "-s -w"设置链接器的标志。 -s 表示去除符号表信息, -w 表示去除 DWARF 调试信息。这些标志有助于减小可执行文件的大小和保护源代码的安全性。
.表示当前目录,即构建当前目录下的 Go 代码。

上述命令执行完成,将会在目录下生成 go-meedu-amd64的可执行文件,此文件在接下来的部署中需要用到。

部署程序

一、上传go-meedu程序

image.png image.png image.png 输入go-meedu,回车,并点击go-meedu进入到此目录中: image.png 选中之前编译生成的 go-meedu-amd64可执行文件上传。

二、创建 config.yaml文件并配置

配置文件模板

# 系统配置
system:
  env: "public" # develop/public
  addr: 8787
  # IP限流:2分钟240次=>2q/s
  iplimit-count: 240
  iplimit-time: 120
  laravel-cache-prefix: "" # laravel应用的缓存前缀
  internal-key: "" # 内部交互的key

# JWT配置
jwt:
  signing-key: "meedu"
  expires-time: 604800 # 7天
  buffer-time: 86400 # 1天
  issuer: "meedu"

# Redis配置
redis:
  db: 0
  addr: "127.0.0.1:6379"
  password: ""

# Mysql配置
mysql:
  dsn:
    sources: "数据库用户:数据库密码@tcp(数据库host:数据库端口)/数据库名?charset=utf8mb4"
    replicas: ""
  max-idle-conns: 10
  max-open-conns: 100

下面将逐个介绍需要修改的配置

2.1 缓存前缀 laravel-cache-prefix配置

此程序是使用 Go 语言开发并配合 meedu 进行使用的,因此为了让此程序能够正常的访问 meedu 程序产生的 redis 缓存,需要进行缓存的配置。进入到 meedu 的 API 程序的根目录,打开 .env文件,该文件的第一行就是 APP_NAME,如下图所示: image.png 如果您这里是中文,那么请将此处的值改为英文。拿上图举例,上图中 APP_NAME的值为 MeEdu,将它转换为小写就是:meedu。因此,通过这个我们就可以得到缓存前缀的值为:meedu_cache

2.2 内部交互key internal-key配置

meedu 的直播模块内部需要与该程序进行数据通信,为了安全需要对数据加密并校验,因此需要配置内部交互key。首先,我们打开这个网址 https://suijimimashengcheng.bmcx.com 该网址是一个随机字符串生成器,我们按照下图操作: image.png 将生成的字符串复制,配置到 config.yaml文件中的 internal-key配置: image.png 同时,打开 meedu 的后台界面程序,进入到系统-系统配置-直播服务配置-直播聊天服务配置-聊天服务key: image.png

2.3 jwt.signing-key

此程序是使用 Go 语言开发并配合 meedu 进行使用的,为了让此程序能够正确解析 meedu 程序发行的用户 token 需要为此程序配置 meedu 的 API 程序的 JwtKey。进入到 meedu 的 API 程序根目录,打开 .env文件,找到 JWT_SECRET,如下图: image.png 这里就是我们需要的 JwtKey 。打开 go-meedu 的 config.yaml文件,配置到下图中: image.png

三、运行程序

image.png image.png image.png image.png 可以看到“已启动”

四、配置对外服务

image.png image.png image.png image.png image.png image.png

到这里,go-meedu的服务配置完成。您可以在浏览器输入 https://go-api.meedu.com访问 go-meedu 服务了。