2017-01-03 23 views
0

は私の話です:

- 私は、SSLでウェブサイトがあります:https://domain.com
を - そして私は、ライブチャットをしたいので、私はNode.jsの
でLinuxサーバをuped - について私はここでは、自己署名証明書

を作ったLinuxサーバは、私のサーバーコード(すべてではないOFC、ただ基本的には)次のとおりです。Nodejs HTTPS socket.ioここ

var options = { 
 
    key: fs.readFileSync("key.pem"), 
 
    cert: fs.readFileSync("cert.pem"), 
 
    requestCert: true 
 
}; 
 

 
var app = express(options); 
 
var server = https.createServer(app); 
 
var io = socket.listen(server).listen(80); 
 

 
io.on('connection', function (socket) { 
 
    socket.emit('connectedToServer', { conncted: true }); 
 
});

ここ

は私のクライアントコードです:

var socket = io.connect('https://XXX.XXX.XXX.XX', {secure: true, port:80}); 
 
socket.on('connectedToServer', function (data) { 
 
    socket.emit('firstTimeConnected', id); 
 
});

OK!クライアント側でエラーが発生しました:net :: ERR_CONNECTION_REFUSED (httpでクライアントを実行すると、WSは動作しますが、ブラウザによってブロックされた「混在したコンテンツ」について警告があります)。
本当にありがとうございました。

答えて

0

コードが奇妙に見えます。私はそれがあなたが思っていることをするかどうか分からない。 また、デフォルトの443の代わりにポート80でリッスンしている理由がわかりません。https://www.examle.com:80/のようなURLを常に使用したいですか?

はこのような何か試してみてください:

var options = { 
    key: fs.readFileSync("key.pem"), 
    cert: fs.readFileSync("cert.pem"), 
    requestCert: true 
}; 
var app = require('express')(); 
var server = require('https').Server(options, app); 
var io = require('socket.io')(server); 

を、今serverlistenを呼び出す:あなたはポートを含める場合を除き

server.listen(...); 

とデフォルトポート(HTTP 80、HTTPS 443)を使用しますすべてのURLに明示的に

+0

ok、取得します。例のようにすべてを変更しました。しかし、私はクライアントでエラーが発生しました: "net :: ERR_INSECURE_RESPONSE"。コードは次のとおりです。var socket = io.connect( 'https:// xxxxxxx'、{secure:true、port:443}); –