想把以前的一个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"); 

 

链接成功

 

posted on 2021-09-11 17:13  gamedaybyday  阅读(1280)  评论(0编辑  收藏  举报