【问题标题】:Socket.io connection on server side does not work服务器端的 Socket.io 连接不起作用
【发布时间】:2013-12-24 02:38:00
【问题描述】:

这是我的 app.js 的一部分:

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

io.sockets.on('connection', function (socket) {
    console.log("we are in connection");
    socket.emit('entrance', {username: req.session.user});
});
server.listen(3000);

我在终端和浏览器上都没有收到控制台消息(这很明显) 这是我的客户端:

doctype html

html
  head
    script(type='text/javascript', src='/socket.io/socket.io.js')
    script(type='text/javascripts', src='/javascripts/jquery.js')
    script(type='text/javascripts', src='/javascripts/client.js')
    script(type='text/javascripts')
        var socket = io.connect('http://localhost')
        socket.on('entrance', function (data) {
            console.log(data);
            socket.emit('my other event', { my: 'data' })
        })

    link(rel='stylesheet', href='/stylesheets/style.css')
    title Chat Room
    body
    div#container
        ul#messages

    input(type="text",name="message",id='message_input')
    a#logout(href='/logout') Log Out

【问题讨论】:

  • 你在客户端脚本中使用了什么?
  • 您是在浏览器控制台还是终端控制台中查找...您甚至是否使用命令 node app.js 启动了您的 app.js?
  • 我已经编辑了我的帖子。请查阅。 @Dave 我当然在运行服务器。

标签: javascript node.js express socket.io


【解决方案1】:

尝试将前三行替换为:

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

并保留您的server.listen 行。

【讨论】:

  • 顺序重要吗?
  • 只要在访问变量之前定义好变量,就不会那么糟糕。
猜你喜欢
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
相关资源
最近更新 更多