You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js创建socket.io服务时报require(...).server is not a function如何解决

错误解决方案

错误根因

报错是因为require('http').server调用的方法不存在:Node.js 原生http模块提供的服务构造函数名为大写开头的Server,而非小写的server,同时你的socket.io初始化缺少必要的http服务实例传入。

修复步骤

  • 修正http服务创建代码,两种写法均可,更推荐语义更清晰的createServer写法:
    // 写法1(推荐)
    var http = require('http').createServer(app)
    // 写法2
    var http = require('http').Server(app)
    
  • 修正socket.io初始化逻辑,将创建好的http服务实例传入:
    var io = require('socket.io')(http)
    
  • 后续启动服务使用http实例调用listen方法,不要使用app.listen,否则socket.io无法绑定端口接收WebSocket请求:
    http.listen(你的端口号, 回调函数)
    

完整修复后代码示例

var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// 创建http服务
var http = require('http').createServer(app)
// 初始化socket.io绑定到http服务
var io = require('socket.io')(http)

// 可在此处添加 express 路由、socket.io事件监听等业务逻辑

// 启动服务监听3000端口
http.listen(3000, function() {
  console.log('服务已启动,访问地址:http://localhost:3000')
})

内容的提问来源于stack exchange,提问作者Omar Esmael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:57:00