【问题标题】:Cannot connect to localhost using Socket io example无法使用 Socket io 示例连接到 localhost
【发布时间】:2015-04-19 21:28:25
【问题描述】:

我一直在关注套接字 io 聊天示例,但我无法让它连接到本地主机!我一遍又一遍地这样做,这真的很令人沮丧。这是我一直在关注的示例:

http://socket.io/get-started/chat/

这是索引:

<!doctype html>
<html>
  <head>
    <title>Socket.IO chat</title>
    <style>
      * { margin: 0; padding: 0; box-sizing: border-box; }
      body { font: 13px Helvetica, Arial; }
      form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
      form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
      form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
      #messages { list-style-type: none; margin: 0; padding: 0; }
      #messages li { padding: 5px 10px; }
      #messages li:nth-child(odd) { background: #eee; }
    </style>
  </head>
  <body>
    <ul id="messages"></ul>
    <form action="">
      <input id="m" autocomplete="off" /><button>Send</button>
    </form>
    <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.1.js"></script>
    <script>
      var socket = io();
      $('form').submit(function(){
        socket.emit('chat message', $('#m').val());
        $('#m').val('');
        return false;
      });
      socket.on('chat message', function(msg){
        $('#messages').append($('<li>').text(msg));
      });
    </script>
  </body>
</html>

这里是 index.js:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
 res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

这是 package.json :

{
  "name": "socket-chat-example",
  "version": "0.0.1",
  "description": "my first socket.io app",
  "dependencies": {
    "express": "^4.10.2",
    "socket.io": "^1.2.0"
  }
}

我已经尝试了所有方法,它总是给出:

“加载资源失败:服务器响应状态为 404(未找到)”

甚至节点index.js 甚至都不会开始监听!

【问题讨论】:

    标签: javascript jquery socket.io chat


    【解决方案1】:

    我不能肯定这是问题所在,但与 Express 4 一起使用的 socket.io 文档表明了这一点,这就是我在我的应用程序中成功使用 Express 和 socket.io 的原因:

    var app = require('express').createServer();
    var server = app.listen(3000);
    var io = require('socket.io')(server);
    
    app.get('/', function(req, res){
     res.sendFile(__dirname + '/index.html');
    });
    
    io.on('connection', function(socket){
      socket.on('chat message', function(msg){
        io.emit('chat message', msg);
      });
    });
    

    当然,当您将 URL 放入浏览器时,您必须包含 :3000 端口号。

    如果您需要进一步帮助,请告诉我们未找到导致错误的确切资源:“加载资源失败:服务器响应状态为 404(未找到)”。

    【讨论】:

      猜你喜欢
      • 2016-10-31
      • 2022-09-27
      • 2020-07-21
      • 1970-01-01
      • 2015-02-01
      • 2011-08-29
      • 2020-04-28
      • 1970-01-01
      • 2015-12-30
      相关资源
      最近更新 更多