Socket.io не работает в экземпляре AWS Cloud9 EC2 - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь создать соединение между клиентом и сервером, используя socket.io в AWS Cloud9 IDE. После запуска сервера я не могу увидеть страницу index.html в браузере.

server.js

var http = require('http');
var socketio = require('socket.io');
var fs = require('fs');


var handler = function(req,res)
{

    fs.readFile(__dirname+'/index.html',function(err,data)
    {
       if(err){
           res.writeHead(500);
           return res.end('Error loading index.html'); 
       }
        else{
            res.writeHead(200);
            res.end(data);
        }    

    });
};


var app = http.createServer(handler);

app.on('listening',function(){
    console.log('ok, server is running');
});

var io = socketio.listen(app);

//io.configure(function(){
 // io.set('transports',['xhr-polling']);
//});

io.sockets.on('connection' , function(socket)  {
    setInterval(function()
    {
    var timestamp = Date.now();
    console.log('Emitted:'+ timestamp);
    socket.emit('timer '+timestamp);
    },2000);

    socket.on('submit', function(data){
        console.log('Submitted'+data);

    });
});
app.listen(8080);

console.log('server running');

index.html

<html>
<head>
 <script src="http://localhost:8080/socket.io/socket.io.js"></script>
<title>Test</test>
<script type="text/javascript">

  var socket;

  function onload()
  {
     socket = io.connect("https://us-east-2.console.aws.amazon.com/cloud9/ide/58cfabffa05240d1917693ee197f9b75");
     socket.connect('http://127.0.0.1:8080');//making a connection to the server
     socket.on('timer',function (data)
    {
    document.getElementById("timer").innerHTML=data;
    });

    socket.on('connect', function () {
                    socket.send('A client connected.');
                });
  };

   function submitData()
   {
    var data = document.getElementById("inputdata").value;
    socket.emit('submit',data);
   };

 </script>
 </head>
 <body onload="onload()">
  <h1>Sample websocket page</h1>
  <p>Timer: <span id="timer"></span></p>

  <form action="#">
    <p> Data: <input type="text" id="inputdata"/>
     <input type="button" onClick="submitData()">
     </p>
     </form>
     </body>
     </html>

В окне вывода вывод отображается при работающем сервере. Но я не могу видеть веб-страницу.

enter image description here

Может кто-нибудь сказать мне, что не так в моем коде? Каковы возможные проблемы, которые вызывают эту проблему?

...