我不明白为什么这不起作用:
我有一个包含以下内容的sample.js
var http = require('http');
var socket = require('socket.io');
var express = require('express');
var app = express();
var server = http.createServer(app);
var io = socket.listen(server);
io.sockets.on('connection', function(client) {
console.log('Client Connected...');
client.emit('messages', {hello: 'world'});
});
server.listen(8080);
我有一个index.html页面,其中包含:
<!DOCTYPE html>
<html>
<head>
<script src="socket.io.js"></script>
<script>
var server = io.connect('http://mydomain:8080');
server.on('messages', function(data) {
alert(data.hello);
});
</script>
</head>
<body>
</body>
</html>
更新:当使用socket.io-client.js库时,当我转到http://mydomain:8080
页面时,我收到“info - unhandled socket.io url”
有人可以指出我可能做错了吗?
答案 0 :(得分:3)
您的服务器永远不会发送index.html
,因为您从未告诉过它。你需要这样的东西:
app.get('/', function(req, res) {
res.sendfile('index.html');
});
假设index.html
位于您应用的根级别,或者更常见的是:
app.use(express.static(__DIRNAME+'/public'));
然后将index.html
(以及样式表等任何其他静态文件)放入应用的public
子目录中。