socket.io 连接事件不起作用,为啥?

Posted

技术标签:

【中文标题】socket.io 连接事件不起作用,为啥?【英文标题】:socket.io connection event not working, why?socket.io 连接事件不起作用,为什么? 【发布时间】:2016-01-21 10:51:06 【问题描述】:

我是 nodejs 的新手,我表达并尝试了 socket.io 只是一个简单的聊天应用程序。它的代码非常简单,一切都很好,但节点控制台上没有事件触发日志。连接事件代码不起作用。

app.js

var express = require('express'),
    app = require('express')(),
    http = require('http').Server(app),
    io = require('socket.io')(http),
    start = require('./routes/index.js');

app.use('/', start);

io.on('connection', function(socket)
    console.log('a user connected');
        socket.on('disconnect', function()
        console.log('user disconnected');
    );
);

var server = app.listen(3000, function () 
    var host = server.address().address;
    var port = server.address().port;
);

module.exports = app;

layout.jade

doctype html
html(lang="en")
head
    script(type="text/javascript" src="https://cdn.socket.io/socket.io-1.4.3.js")
    script.
        var socket = io();

body
    block content

【问题讨论】:

【参考方案1】:

尝试在 http 而不是 app 上收听。像这样:

var server = http.listen(3000, function () 
...

【讨论】:

工作!天呐!完美

以上是关于socket.io 连接事件不起作用,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 $.get 调用文件时,socket.io 事件不起作用

socket.io 身份验证在第一个连接上不起作用

laravel 事件应该广播不起作用

来自 socket.io 的新 cookie 值不起作用?

socket.io swift 在真实设备上不起作用

使用 Socket.io 在 React Native 移动应用程序中不起作用