Pai*_*Die 4 ssl https node.js socket.io
服务器端代码:
var io = require('socket.io').listen(8150);
io.sockets.on('connection', function (socket){
});
Run Code Online (Sandbox Code Playgroud)
客户端代码:
var socketIO = io('*.*.*.*:8150');
socketIO.once('connect', function(){
});
Run Code Online (Sandbox Code Playgroud)
在 http 上,它在同一页面上的 https 上工作,但未连接。搜索了很多例子,但所有例子都是快递。我没有在 node.js 中创建任何 http 服务器只需要 socket.io 工作。
通过 HTTPS 运行客户端时,socket.io 也会尝试通过 HTTPS 连接到您的服务器。目前您的服务器只接受 HTTP 连接,该listen(port)功能不支持 HTTPS。
您需要创建一个 HTTPS 服务器,然后将 socket.io 附加到它,就像这样。
var fs = require('fs');
var options = {
key: fs.readFileSync('certs/privkey.pem'),
cert: fs.readFileSync('certs/fullchain.pem')
};
var app = require('https').createServer(options);
var io = require('socket.io').listen(app);
app.listen(8150);
io.sockets.on('connection', function (socket) {
});
Run Code Online (Sandbox Code Playgroud)
如果您同时需要 HTTP 和 HTTPS,您可以启动两个服务器并将 socket.io 附加到两者。
var fs = require('fs');
var options = {
key: fs.readFileSync('certs/privkey.pem'),
cert: fs.readFileSync('certs/fullchain.pem')
};
var httpServer = require('http').createServer();
var httpsServer = require('https').createServer(options);
var ioServer = require('socket.io');
var io = new ioServer();
io.attach(httpServer);
io.attach(httpsServer);
httpServer.listen(8150);
httpsServer.listen(8151);
io.sockets.on('connection', function (socket) {
});
Run Code Online (Sandbox Code Playgroud)
然后在客户端,您可以根据页面是通过 HTTP 还是 HTTPS 访问来确定要连接到哪个端口。
var port = location.protocol === 'https:' ? 8151 : 8150;
var socketIO = io('*.*.*.*:' + port);
socketIO.once('connect', function() {
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7497 次 |
| 最近记录: |