gpt4 book ai didi

node.js - socket.IO-为什么我的客户端html页面无法加载socket.io.js?

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

我的服务器结构很简单。我有一个与我的应用程序处于同一级别的公共(public)文件夹。

app.js
node_modules(folder)
express(folder)
socket.io(folder)
public(folder)
index.html
js(folder)
css(folder)

我的应用程序如下

var sys         = require('sys'),
express = require('express'),
app = express.createServer('127.0.0.1'),
io = require('socket.io');

app.use(express.static(__dirname + '/public'));

app.get('/', function (req, res) {
res.send('Hello World');
});

app.listen(3000);

var socket = io.listen(app);

socket.on('connection', function (client){
// new client is here!

});

我的 html 页面(简化)是

<html>
<p id="text">socket.io</p>


<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript" src="js/lib/jquery-1.4.2.min.js"></script>
</html>

当我运行服务器并加载index.html时,未找到socket.io.js,会生成404错误。是什么赋予了?就我而言,socket.IO 必须全局安装吗?

最佳答案

试试这个:

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

app.use(express.static(__dirname + '/public'));

app.get('/', function (req, res) {
res.send('Hello World');
});

var server = app.listen(3000);
var socket = io.listen(server);

socket.on('connection', function (client){
// new client is here!
});

一些解释:

  • express.createServer 已弃用,在 Express 3 中,您可以运行 express() 来实例化 express ;
  • io.listen 应该传递一个 http.Server 实例,而您传递的是一个 Express 实例(一个 http.Server 实例)由 app.listen(...) 返回);
  • 不需要将 socket.io.js 文件放在任何地方; socket.io 安装一个处理程序,用于监视对该文件的请求,并自动提供服务;

关于node.js - socket.IO-为什么我的客户端html页面无法加载socket.io.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20431672/

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