javascript - socket.io 连接事件不起作用,为什么?

标签 javascript node.js express websocket socket.io

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

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

最佳答案

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

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

关于javascript - socket.io 连接事件不起作用,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34921690/

相关文章:

javascript - 原型(prototype)函数的动态函数调用

javascript - 使用 angular-fullstack 结构

javascript - 为什么在 Firebase 云函数中没有成功完成 Promise.all() 就退出无服务器函数时性能会下降?

node.js - Express 4路由器

javascript - 设置三个 express 实例 : admin, 站点和应用程序

javascript - 在javascript中编写 parent 的 child 的有效方式

javascript - 在 observableArray Knockout JS 中切换值?

node.js - ProxyPass apache https 到 Node 服务器

javascript - 在 Nodejs 中定期写入文件

node.js - 如何在 Node/Express 应用程序中处理 api 版本