Node JS と socket.io を使用してアプリケーションを作成しました。正常に動作していました。アプリケーションを安全な接続に移行する必要があったため、SSL をサポートするようにコードを変更しました。
しかし、今はできませんsocket.emit
。サーバーもクライアントもメッセージを送信できません。
接続は正常に行われますが、その後は何も出力されません。
これがコードです。
サーバ側
var fs = require( 'fs' );
var options = {
key: fs.readFileSync('/etc/httpd/conf.d/ssl/*.xyz.in.key'),
cert: fs.readFileSync('/etc/httpd/conf.d/ssl/xyz.in.crt'),
requestCert: true,
rejectUnauthorized: false // Tried both, with and without this line.
};
var io = require( 'socket.io' ).listen( 8888, options );
io.sockets.on('connection', OnConnection );
io.set("origins", "*:*"); // Tried with and without this line.
// Called when a connection is made with a new Client.
function OnConnection ( socket )
{
console.log( socket.id + " connected" ); // This line gets printed.
socket.on('ev_SendMsgForApproval', OnMsgReceivedForModApproval );
}
function OnMsgReceivedForModApproval( data )
{
console.log( data ); //This does not get executed. :(
}
クライアント側
var socket = io.connect("https://xyz.com:8888", {secure : true} );
// This message get called for sure.
function OnMsgSendClick()
{
console.log( "Hi" ); // This gets printed on browser's console.
socket.emit( 'ev_SendMsgForApproval', { chatMsg: "Hi" } );
return false;
}
サーバーからの発行も試みましたが、そのデータはクライアントにも届きません。デバッグでは、サーバーが何かを発行したことを確認できますが、それはクライアントには届きません。
これはすべて、SSLなしで正常に機能していました。
問題は何ですか?長い間これにこだわっています。助けてください。