2012-09-27 69 views
2

我想使用Node.js(0.5.11)和Socket.IO简单地运行聊天。我使用纯HTTP进行工作,但我需要启动SSL。 我已经生成密钥和证书喜欢在维基:http://nodejs.org/api/tls.html#tls_tls_sslSocket.IO + Node.js + 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'); 
}); 

服务器开始好。问题开始时我想引用socket.io上的index.php:

<script src="https://localhost:8000/socket.io/socket.io.js"></script> 

萤火虫给我中止状态和becouse没有加载它,我不能与“IO”的目标工作。我也在src属性中尝试“http:// local ...”,但没有任何更改。 我在做什么错? 有人可以给我一个建议或很好的教程如何运行Socket.IO wth SSL?

感谢已经答复

+1

一个tls.createServer是不一样的一个https.createServer。你真的需要哪一个? – Joe

+0

我需要https becouse我需要在聊天中发送加密的数据。 –

+1

您是否尝试过使用https.createServer而不是tls.CreateServer? – Joe

回答

0
<script src='/socket.io/socket.io.js'></script> 

你只需要这个,因为它会自动发现,以防万一你忘记,如果连接到另一个地址更新端口和地址。

服务器中包含socketio在哪里? 这似乎是问题

var sockio = require("socket.io"); 
var io = sockio.listen(server); 
+0

如果“客户端”没有安装SocketIO,它如何自动发现。它需要从服务器上下载。我需要检查你的代码,但我现在不能这样做,tomorow我会回复。谢谢! –

+0

您在客户端使用的socketio js文件是由节点服务器自动发送的,只需在此处搜索stackoverflow,就可以看到很多问题。并在发送和获取数据(确认)中检查此http://socket.io/#how-to-use。 – Dslayer