我有以下代碼:用於Socket.IO解釋的Node.js服務器?
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服務器?
如果有人想知道,__dirname是目錄服務器腳本正在運行。 –