想把以前的一个demo放到微信小游戏上,发现https证书过期了。然后忘了当初怎么弄的了。
现在又弄一遍记下来,免得以后过期了又忘了。。。
一 首先服务器要有https证书
参考https://www.cnblogs.com/gamedaybyday/p/10711630.html进行配置
二 下载服务器的证书
根据上篇文章,下载证书。虽然我的服务器是iis的,下载时选择nginx。
解压得到这两个文件,将文件放到服务端项目下
三 nodejs代码
需要定义一个options,在options里加载证书,然后在调用ws.createServer时传入options
var fs = require("fs"); var ws = require("nodejs-websocket"); var protobufjs = require("protobufjs"); var root = protobufjs.loadSync("./game.proto"); var options = { secure:true, key: fs.readFileSync(process.cwd()+'/6272043_www.xxxxx.xxx.key'), cert: fs.readFileSync(process.cwd()+'/6272043_www.xxxxxx.xxx.pem') }; console.log("开始创建websocket"); var server = ws.createServer(options, function (conn) { console.log("连接成功"); conn.on("binary", function (inStream) { var data; inStream.on("readable", function () { data = inStream.read(); }) inStream.on("end", function () { }) }) conn.on("close", function (code, reason) { console.log("关闭连接") }); conn.on("error", function (code, reason) { console.log("异常关闭") }); }).listen(3005);
在cocos中测试是否可以以wss形式链接
App.Socket.connect("wss://www.xxx.xxx:3005");
链接成功