用nodejs搭建微信小程序的https的websocket服务端

14 篇文章 0 订阅
2 篇文章 0 订阅

方法1:wss-sample.js 运行这个案例, 你需要先安装ws库。 安装npm install ws 运行node wss-sample.js
‘use strict’;

var fs = require(‘fs’);

// you’ll probably load configuration from config
var cfg = {
ssl: true,
port: 7000,
ssl_key: ‘ssl.key’,
ssl_cert: ‘ssl.crt’
};

var httpServ = (cfg.ssl) ? require(‘https’) : require(‘http’);

var WebSocketServer = require(‘ws’).Server;

var app = null;

// dummy request processing
var processRequest = function(req, res) {
res.writeHead(200);
res.end(‘All glory to WebSockets!\n’);
};

if (cfg.ssl) {
app = httpServ.createServer({
// providing server with SSL key/cert
key: fs.readFileSync(cfg.ssl_key),
cert: fs.readFileSync(cfg.ssl_cert)

}, processRequest).listen(cfg.port);

} else {
app = httpServ.createServer(processRequest).listen(cfg.port);
}

// passing or reference to web server so WS would knew port and SSL capabilities
var wss = new WebSocketServer({
server: app
});

wss.on(‘connection’, function(wsConnect) {
wsConnect.on(‘message’, function(message) {
console.log(message);
wsConnect.send(‘reply’);
});
});
方法2:
如果是在express框架下实现websocket(ssl)。wss-express.js:
‘use strict’

var fs = require(‘fs’);
var https = require(‘https’);

var server = https.createServer(
{
‘key’:fs.readFileSync(‘ssl.key’),
‘cert’:fs.readFileSync(‘ssl.crt’)
}
);
var url = require(‘url’);
var WebSocketServer = require(‘ws’).Server;
var wss = new WebSocketServer({
server: server
});
var express = require(‘express’);
var app = express();
var port = 7000;

app.use(function(req, res) {
res.send({
msg: “hello”
});
});

wss.on(‘connection’, function connection(ws) {
var location = url.parse(ws.upgradeReq.url, true);
// you might use location.query.access_token to authenticate or share sessions
// or ws.upgradeReq.headers.cookie (see http://stackoverflow.com/a/16395220/151312)

ws.on('message', function incoming(message) {
    console.log('received: %s', message);
});

ws.send('something');

});

server.on(‘request’, app);
server.listen(port, function() {
console.log('Listening on ’ + server.address().port)
});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值