【发布时间】:2013-09-24 06:50:22
【问题描述】:
我在哪里可以找到结合 express 3.0 的 socket.io 1.0 的工作示例?目前的问题是在我的 index.html 中找不到/socket.io/socket.io.js。
var express = require('express')
var http = require('http')
var app = express()
app.configure(function () {
app.set('port', process.env.PORT || 80);
});
// setup express server
var serv = http.Server(app);
// setup socket io
var io = require('socket.io')(serv);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
serv.listen(app.get('port'), function () {
console.log("Express server listening on port " + app.get('port'));
});
这就是我在 index.html 中的内容
<!DOCTYPE html>
<html lang="en">
<head>
<title>Socket Example</title>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('/');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
</head>
<body>
<b>Socket IO</b>
</body>
这就是我在 package.json 中的内容
{
"name": "socketio",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.0",
"socket.io": "LearnBoost/socket.io"
},
"scripts": {
"start": "node app.js"
}
}
【问题讨论】:
-
在您的控制台 f12 上,您是否收到任何 404 丢失文件?也不要使用绝对路径尝试相对路径即/socket.io/socketio.js
-
我尝试了绝对路径和相对路径。也有同样的问题(404)。
-
好的,那么文件不存在.. 404 表示那里没有物理文件,您是在运行 Web 服务还是节点?是80端口吗?默认情况下,http:// 端口为 80,除非您另外指定。
-
我正在端口 80 上运行节点。我的所有东西都可以使用我以前的 socket.io 版本。
-
所以仔细检查文件结构..它的 404 表示没有文件。不是 500,这将是服务器错误。
标签: javascript node.js express socket.io