【问题标题】:Socket.io and express.js, how to make it work?Socket.io 和 express.js,如何使其工作?
【发布时间】:2015-05-05 13:14:44
【问题描述】:

我在网上看到了很多变化,但似乎没有什么对我有用。如何让 socket.io 1.3.5 和 express 4.12.2 工作?

这就是我现在所拥有的。我得到的错误是 404,因为服务器无法提供 /socket.io/socket.io.js

app.js:

var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

io.on('connection', function (socket) {
   console.log('connected');
});

index.hjs:

<script src="/socket.io/socket.io.js"></script>
        <script>
          var socket = io.connect();
          socket.on('news', function (data) {
            console.log(data);
          });
</script>

注意:我也尝试过使用 cdn &lt;script src="https://cdn.socket.io/socket.io-1.3.5.js"&gt;&lt;/script&gt;,但没有成功。

【问题讨论】:

    标签: javascript node.js express socket.io


    【解决方案1】:

    要将 socket.io 与 express 一起使用,我们需要对默认没收 expesss 进行一些更改。

    app.js:

    var app = require('express')();
    
    app.get('/', function (req, res) {
      res.sendfile(__dirname + '/index.html');
    });
    
    module.exports = app;
    

    io.js

    var io = require('socket.io')();
    
    io.on('connection', function (socket) {
      socket.emit('news', { hello: 'world' });
      socket.on('my other event', function (data) {
        console.log(data);
      });
    });
    
    module.exports = io;
    

    bin/www:

    var app = require('../app');
    var io = require('../io');
    var server = require('http').Server(app);
    
    io.attach(server);
    server.listen(8080);
    

    现在你应该像下面这样使用索引模板

    <script src="/socket.io/socket.io.js"></script>
    <script>
    $(document).ready(function(){
          var socket = io();
          socket.on('news', function (data) {
            console.log(data);
          });
    
          });
    });
    </script>
    

    这是一个工作代码..

    谢谢

    【讨论】:

    • 谢谢!似乎我所缺少的只是 io.attach(server)。
    猜你喜欢
    • 2013-12-05
    • 1970-01-01
    • 2016-02-14
    • 2012-08-03
    • 2011-07-28
    • 2014-09-26
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多