在Apache服务页面中使用Socket.io

时间:2014-02-27 22:49:31

标签: javascript node.js apache sockets socket.io

我知道这最近一直是一个反复出现的问题,但尽管我尽力阅读,但我无法解决这个简单的问题:

我过度简化的套接字服务器:

var socket = require('socket.io').listen(7000);

socket.on('connection', function(client){
  client.on('message', function(msg){
      socket.broadcast(msg);
  })
});

node socket.js输出:socket.io started

http://localhost:7000输出:'欢迎使用socket.io'

Index.html(简化):

<html>
   <head>
      <script src="http://localhost:7000/socket.io/socket.io.js"></script>
      <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
      <script>
         var name = '';
         var socket = io.connect('http://localhost:7000');

         $(document).ready(function(){
            $("button").click(function(){
               $("p#log").html('sent message: ' + $("input#msg").val());
               socket.emit('message', $("input#msg").val() );
               $("p#data_received").append("<br />\r\n"+ $("input#msg").val());
               $("input#msg").val('');
            });
         });

        socket.on('chat', function (data) {
            console.log(data);
         });
      </script>
   </head>
   <body>
      <input type="text" id="msg"></input><button>send</button>
      <p id="log"></p>
      <p id="data_received"></p>
   </body>
</html>

页面在Apache服务器上正确显示。但无论我怎么做,我都会得到以下信息:

GET http://localhost:7000/socket.io/socket.io.js net::ERR_CONNECTION_REFUSED  

我尝试过使用完整的url(node_modules / socket.io /.../ dist / socket.io.js),但没有工作。 有什么想法吗?我不是在考虑像apache配置这样的东西吗?我正在考虑将整个页面移动到节点服务器,但问题仍然是我...

1 个答案:

答案 0 :(得分:1)

  

只需将localhost更改为我的域名即可解决问题。这不是我第一次遇到“localhost&#39;在EC2上。