私は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');
});
});
index.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 でエラーが発生します)。そのファイルを提供するためにエクスプレスを取得するには、何をする必要がありますか? どの例でもそれを見つけることができません。
ここで私が間違っていることは他にありますか?