gpt4 book ai didi

node.js - 通过 node.js/express 向客户端提供 socket.io javascript 文件

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

我正在尝试获取一个使用socket.io 和express 的示例客户端连接(具体来说,这个: http://www.catonmat.net/blog/nodejs-modules-socketio/ 以及 https://github.com/LearnBoost/socket.io/blob/master/examples/chat/app.js 中其他示例的一些部分)。

我已经完成了大部分的设置和工作 - 服务器运行,我可以点击/将 index.jade 文件获取到浏览器。然而,一旦发生这种情况,它就没有任何作用。

服务器:

var io = require('socket.io');
var express = require('express')
, stylus = require('stylus')
, nib = require('nib');

var app = express.createServer()
var io = io.listen(app);

app.configure(function () {
app.use(stylus.middleware({ src: __dirname + '/public', compile: compile }));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname);
app.set('view engine', 'jade');

function compile (str, path) {
return stylus(str)
.set('filename', path)
.use(nib());
};
});

app.get('/', function (req, res) {
res.render('index', { layout: false });
});


app.listen(8080);

io.sockets.on('connection', function (socket) {
console.log('A socket connected!');
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
socket.on('disconnect', function () {
console.log('user disconnected');
});
});

索引.jade:

doctype 5
html
head
link(href='/stylesheets/style.css', rel='stylesheet')
script(src='http://code.jquery.com/jquery-1.6.1.min.js')
script(src='/socket.io/socket.io.js')
script
// socket.io specific code
var socket = io.connect('http://localhost:8080');
socket.on('connect', function () {
alert('connected');
});
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
body
#chat

服务器似乎未提供/socket.io/socket.io.js 服务(http://localhost:8080/socket.io/socket.io.js 会产生错误)。我需要做什么才能让 express 服务该文件?我在任何示例中都找不到这一点。

我在这里还做错了什么吗?

最佳答案

Using Socket.IO Express 3 要求您实例化一个 http.Server 以将 socket.io 附加到:

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

这应该适合你。

关于node.js - 通过 node.js/express 向客户端提供 socket.io javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11635845/

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