微信小游戏 关系链互动数据demo问题

前言

关系链互动数据是微信小游戏用于微信朋友互动的功能,常用于排行榜排名等。

应小游戏开发同学的请求,从官方下载了关系链互动数据demo代码并部署到测试服。

过两天开发同学就反馈,demo只能用于调试,在非调试时无法显示排行榜,提示超时,怀疑是通信协议问题,需要为示例代码加上ssl。

过程

不说废话,直接介绍如何为demo加ssl。

安装demo环境

首先看demo结构与启动脚本,知道是用nodejs写的,所以需要安装nodejs。

1
2
3
4
5
安装nvm
wget -qO- https://raw.github.com/creationix/nvm/v0.33.11/install.sh | sh

重启或另开Xshell终端,安装Node.js
nvm install stable

安装nodejs完成后,直接在demo目录下运行npm run start,可以看到demo正常运行。

为demo加ssl

查看demo的index.js代码,查看得demo主要用了Koa框架,于是简单了,查找如何为Koa加ssl就行了。

首先需要安装koa-websocket:

1
npm install koa-websocket

安装后可以在demo的node_modules目录下查看多出koa-websocket目录。

在demo目录下新建ssl目录用于存放证书。
申请证书,同时将证书放于ssl目录下。

修改index.js,加上ssl证书:

1
2
3
4
5
6
7
8
9
const fs = require('fs')
let options = {
key: fs.readFileSync('./ssl/a.com.key', 'utf8'),
cert: fs.readFileSync('./ssl/a.com.crt', 'utf8')
}
const Koa = require('koa');
const websockify = require('koa-websocket')
const app = websockify(new Koa(), {}, options)
//const app = new Koa();

基本只要修改上面部分,其它的都不用动,同时端口可以不为443,直接默认3000端口就行,访问 https://a.com:3000/onLogin ,得Method Not Allowed,即为成功。

结尾

到这里就完成了,如果加上ssl证书,还会出现排行榜无法显示问题,可以查看域名是否已加入通信域名,这个在「小程序后台-开发-开发设置-服务器域名」中进行配置,如果没有,配置加入 https://a.com:3000 生效,注意,端口要加上。


- - END - -


腾讯云
0%