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