неудачное подключение к websocket с использованием socket.io , SocketIO4Net и AWS

#node.js #amazon-web-services #socket.io #socketio4net

#node.js #amazon-веб-сервисы #socket.io #socketio4net

Вопрос:

Я пытаюсь закодировать клиентскую часть подключения к веб-сокету в приложении Windows web form с помощью библиотеки SocketIO4Net, доступной в Visual Studio. Вот мой код:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SocketIOClient;
namespace WFA
{
    public partial class Form1 : Form
    {

        Client socket = new Client("ws://ec2-52-39-154-191.us-west-2.compute.amazonaws.com:8080");

        private void Form1_Load(object sender, EventArgs e)
        {
            socket.Connect();
        }
    }
}
 

У меня есть экземпляр в Amazon Web Services (AWS) с конечной точкой

 ec2-52-39-154-191.us-west-2.compute.amazonaws.com
 

И у меня есть app.js файл на сервере, который работает все время

 var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

io.on('connection', function(socket){
  console.log("user connected");
});

http.listen(8080, function(){
  console.log('listening on *:8080');
});
 

Это должно просто отображать сообщение «прослушивание включено *: 8080» и «пользователь подключен» при каждой загрузке формы.
I отображает прослушивание на *: 8080, но не отображает подключенного пользователя при загрузке формы. Я не понимаю, где я ошибаюсь. Я подумал, что это может быть не работает, потому что это общедоступная конечная точка, а не в той же сети, из-за настроек в AWS.

Итак, я попробовал это на стороне клиента веб-браузера:

 <!doctype html>
<html>
  <head>
  </head>
  <body>
    <div id = "chat">
        <ul id="messages"></ul>
    </div>
    <form action="">
      <input id="m" autocomplete="off" /><button>Send</button>
    </form>
    <script src="/socket.io/socket.io.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
        var socket = io.connect('ws://ec2-52-39-154-191.us-west-2.compute.amazonaws.com:8080');
    </script>
  </body>
</html>
 

С помощью этого клиентского кода каждый раз, когда кто-то посещает ссылку http://ec2-52-39-154-191.us-west-2.compute.amazonaws.com:8080/
, отображается подключенный пользователь.

Почему он не отображается при загрузке формы по сравнению с отображением, когда кто-то переходит по ссылке. Я бы хотел, чтобы сообщение появлялось, когда кто-то загружает форму.