没有密钥和证书文件就很难测试您的示例,相反,我将提供一个使用Express,socket.io和https的示例。
首先,我将创建密钥和证书文件,因此在目录中,从终端运行以下命令:
它下面的命令将生成一个包含RSA密钥的文件。
$ openssl genrsa 1024 > file.pem
在这里,将要求您输入数据,但是可以按Enter保留空白,直到生成crs.pem。
$ openssl req -new -key file.pem -out csr.pem
然后将创建一个包含SSL证书的file.crt文件。
$ openssl x509 -req -days 365 -in csr.pem -signkey file.pem -out file.crt
因此,
app.js在我要设置和启动服务器的文件中
file.pem,请注意我正在使用文件并
file.crt在最后一步中生成:
var fs = require('fs');var https = require('https');var express = require('express');var app = express();var options = { key: fs.readFileSync('./file.pem'), cert: fs.readFileSync('./file.crt')};var serverPort = 443;var server = https.createServer(options, app);var io = require('socket.io')(server);app.get('/', function(req, res) { res.sendFile(__dirname + '/public/index.html');});io.on('connection', function(socket) { console.log('new connection'); socket.emit('message', 'This is a message from the dark side.');});server.listen(serverPort, function() { console.log('server up and running at %s port', serverPort);});然后是我
public/index.html使用服务器的位置:
<!doctype html><html> <head> </head> <body> <h1>I am alive!!</h1> <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.5/socket.io.js"></script> <script> var URL_SERVER = 'https://localhost:443'; var socket = io.connect(URL_SERVER); socket.on('message', function(data) { alert(data); }); </script> </body></html>最后,如果您从浏览器访问
https://localhost,则将看到警报,其中包含来自websocket服务器的消息。



