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