下面的程式碼摘抄於官方網站,我在本地跑了一下,並且把自己的理解簡單的做了記錄
服務端 app.js
var app = require('http').createServer(handler) var io = require('socket.io')(app); var fs = require('fs'); app.listen(80); function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); });
socket.emit是指,在客戶端連線時,給客戶端傳送news事件,並且傳遞對應的資料給客戶端
socket.on是指,編寫對應的my other event事件,供客戶端呼叫
這類似於webservice裡的客戶端、服務端。socket.emit相當於客戶端,socket.on相當於服務端
客戶端 index.html
<script src="/socket.io/socket.io.js"></script> <script> var socket = io('http://localhost'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script>