gpt4 book ai didi

node.js - Socket.io 无法摆脱 "io is not defined"错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:01 25 4
gpt4 key购买 nike

无法让socket.io工作并且总是出现错误ReferenceError:io未定义

服务器代码:

express = require('express');
var socket = require('socket.io')
app = express();

var io = socket.listen(app);

app.get('/room', function (req, res) {
res.render('room.ejs')
});

io.sockets.on('connection', function (client) {
console.log('Client connected...')
});

app.listen(process.env.PORT || 17336);

客户端代码:

<script src="localhost:17336/socket.io/socket.io.js"></script>
<script>var socket = io.connect('http://localhost:17336')</script>

这是我网站的目录结构:
(在 WebMatrix 中制作)

Site
|__iisnode
|__node_modules
|__.bin
|__ejs
|__express
|__socket.io
|__public
|__views
|__room.ejs (Client code is here)
|__favicon.ico
|__robots.txt
|__server.js (Server code is here)
|__web.config

最佳答案

这是因为 localhost:17336/socket.io/socket.io.js 不可用。我猜你的 socket.io 服务器没有启动,因为你使用的是 Express 2.0 语法,但安装了 Express 3.0。

Express 3 要求您首先实例化一个 http.Server 来附加 socket.io。我是这样做的:

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

关于node.js - Socket.io 无法摆脱 "io is not defined"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16857722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com