Socket.io

Socket.io的目的是提供即時通訊的套件,在官方網站上可以看到一些簡單的範例程式碼,但是我還是記錄一下簡單的操作。首先必須安裝Socket.io。

1
npm install socket.io

Server端程式碼

server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var http = require('http'),
fs = require('fs'),
server,
io;

server = http.createServer(function(req, res){
fs.readFile(__dirname + '/index.html', function(err, data){
res.writeHead(200);
res.end(data);
});
});

server.listen(8080);

//引入socket.io並且聽取server的服務
io = require('socket.io').listen(server);

//當連線時(connection)執行的動作
io.sockets.on('connection', function(socket){

//讓Client端監聽'news'方法,並傳送值({hello:'world'})
socket.emit('news', {hello:'world'});

//監聽Client發送的'my other event',並將Client端發送的值印出
socket.on('my other event', function(data){
console.log(data);
});
});

Server端與Client端對照.on.emit兩個方法內的名稱,可看出Server端與Client的互相對應關係。

Client端

index.html
1
2
3
4
5
6
7
8
<script src='/socket.io/socket.io.js'></script>
<script>
var socket = io.connect('http://localhost:8080');
socket.on('news', function(data){
console.log(data);
socket.emit('my other event', {my: 'data'});
});
</script>