【发布时间】:2016-05-24 12:42:08
【问题描述】:
我有以下代码:
express = require('express');
app = express();
http = require('http').createServer(app);
io = require('socket.io')(http);
app.use(express.static(__dirname + '/'));
http.listen(80);
我知道它创建了一个客户端可以连接的服务器并且它可以工作。但我不知道到底发生了什么。能详细解释一下吗?
另外,当我忘记 Express.js 并只使用这一行时,为什么事情不起作用:
io = require('socket.io').listen(80);
它似乎在监听连接。但是,当我转到 http://localhost/ 时,在浏览器内部,什么也没有发生。我的猜测是我没有像这样为我的应用程序指定目录:
app.use(express.static(__dirname + '/'));
这就是我需要 Express 的原因吗?指定目录?
在客户端,我使用:
socket = io('http://localhost/'); // this
socket = io(); // or this
它们都不适用于服务器端的单行代码。
另外,当 Socket.IO 使用 WebSocket 协议时,为什么我需要一个 HTTP 服务器?
【问题讨论】:
标签: node.js sockets express socket.io server