节点js套接字连接Https服务器亚马逊EC2

时间:2018-03-02 10:28:34

标签: node.js amazon-ec2 https socket.io openssl

我在AWS EC2中尝试使用ssl认证的套接字连接。 我已创建密钥文件和证书文件,并将我的密钥附加到亚马逊负载平衡。

我的服务器端代码是

 const socket = require( 'socket.io' );
const express = require( 'express' );
const https = require( 'https' );
const fs = require("fs");
var port = 8443;
var options = {
  key: fs.readFileSync('/var/www/html/key/my.key').toString(),
  cert: fs.readFileSync('/var/www/html/key/my.crt').toString(),
  NPNProtocols: ['http/2.0', 'spdy', 'http/1.1', 'http/1.0']
};
var app = express();
var server = https.createServer(options , app);
var io = require('socket.io')(server);

io.sockets.on( 'connection', function( client ) {
  console.log( "New client !" );

  client.on( 'search_id', function( data ) {
    console.log( 'Message received ' + data.search_id );
    io.sockets.emit( 'search_id', { search_id: data.search_id } );
  });
});


server.listen(8443, function () {
    var addr = server.address();
    console.log('   server listening on :' + addr.port);
});

我的客户端代码是

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script>



 var socket = io.connect( 'https://'+window.location.hostname+':8443' );
                        socket.emit( 'search_id', { search_id: search_id } );

                       socket.on('connect_error', function(data){
                        console.log(data);
                        console.log("Connection Failed");
                       });

                        socket.on( 'search_id', function( data ) {
                        console.log(data);
                      });

我在终端中运行我的服务器js。最初返回server listening

然后转到connect_error - 我的控制台中的连接失败返回。

我的代码在我的本地系统中运行。我做了什么错误,AWS服务器中是否还有其他配置?

0 个答案:

没有答案