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

Я пытаюсь кодировать клиентскую часть подключения к веб-сокету в приложении веб-формы Windows с помощью библиотеки 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" и "сообщение подключено" каждый раз при загрузке формы. Я отображаю прослушивание *: 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/подключенный пользователь отображается.

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

0 ответов

Другие вопросы по тегам