2012-09-27 112 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