【发布时间】:2012-09-19 06:48:47
【问题描述】:
我想使用 Node.js (0.5.11) 和 Socket.IO 运行简单的聊天。我一直在使用纯 HTTP,但我需要启动 SSL。 我在 wiki 中生成了密钥和证书:http://nodejs.org/api/tls.html#tls_tls_ssl
我使用的代码:
app.js:
var tls = require('tls');
var fs = require('fs');
var options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem'),
};
var server = tls.createServer(options, function(cleartextStream) {
console.log('server connected',
cleartextStream.authorized ? 'authorized' : 'unauthorized');
cleartextStream.write("welcome!\n");
cleartextStream.setEncoding('utf8');
cleartextStream.pipe(cleartextStream);
});
server.listen(8000, function() {
console.log('server bound');
});
服务器启动良好。当我想在 index.php 上引用 socket.io 时,问题就开始了:
<script src="https://localhost:8000/socket.io/socket.io.js"></script>
Firebug 给我状态 Aborted 并且我不能使用“io”对象,因为它没有加载。我还在 src 属性中尝试了“http://local...”,但没有任何变化。 我究竟做错了什么? 谁能给我一个建议或好的教程如何使用 SSL 运行 Socket.IO?
谢谢你的回复
【问题讨论】:
-
tls.createServer 与 https.createServer 不同。你真正需要哪一个?
-
我需要 https,因为我需要在聊天中发送加密数据。
-
您是否尝试过使用 https.createServer 而不是 tls.CreateServer?
-
将名称从“tls”更改为“https”不会改变任何内容,并且尝试 require('https') 不起作用