基礎看這裡 WebSocket 教程
https://socket.io/docs/
https://segmentfault.com/a/11…
用Socket.io打造協作應用
Installing
$ npm install socket.io
Using with Node http server
Server (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);
});
});
Client (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>
開始練習
例項1 https://segmentfault.com/a/1190000004925844
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font: 13px Helvetica, Arial; }
form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
#messages { list-style-type: none; margin: 0; padding: 0; }
#messages li { padding: 5px 10px; }
#messages li:nth-child(odd) { background: #eee; }
#messages { margin-bottom: 40px }
</style>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function () {
var socket = io();
$(`form`).submit(function(){
socket.emit(`chat message`, $(`#m`).val());
$(`#m`).val(``);
return false;
});
socket.on(`chat message`, function(msg){
$(`#messages`).append($(`<li>`).text(msg));
window.scrollTo(0, document.body.scrollHeight);
});
});
</script>
</body>
</html>
var app = require(`express`)();
var http = require(`http`).Server(app);
var io = require(`socket.io`)(http);
var port = process.env.PORT || 3000;
app.get(`/`, function(req, res){
res.sendFile(__dirname + `/index.html`);
});
io.on(`connection`, function(socket){
socket.on(`chat message`, function(msg){
io.emit(`chat message`, msg);
});
});
http.listen(port, function(){
console.log(`listening on *:` + port);
});
Getting this example
You can find it on GitHub here.
$ git clone https://github.com/socketio/chat-example.git