标签:
为了让网页端和服务端能随时互相通讯,以前在HTTP下有多种写法,但是现在我们可以使用websocket,至少在Chrome上可以。
先安装socket.io
npm install socket.io --save
在服务端,可以将socket.io和KOA结合起来:
import Koa from ‘koa‘;
import IO from ‘socket.io‘
let app = new Koa();
let server = require(‘http‘).Server(app.callback());
let io = new IO(server);
在app的所有中间件加载结束之后,
io.on(‘connection‘, socket=>{
console.log("here! someone connected!");
socket.on(‘foo‘, data=>{
console.log(data);
setInterval(()=>socket.emit(‘bar‘, {text:"hi"}),1000);
})
});
这样,只有有客户端连接进来,并向服务端发送了‘foo‘事件之后,我们就会每1秒向它发送一些信息。
之后是客户端,用如下方法先建立连接:
import io from ‘socket.io-client‘;
var socket = new io("http://localhost:3000");
socket.on(‘connect‘, ()=>{
console.log("Connected!");
})
socket.on(‘disconnect‘, ()=>{
console.log("Disconnected!");
})
再发送并接受刚才服务端的事件
socket.emit("foo", {});
socket.on("bar", data=>{
console.log("rec:", data);
})
可以在chrome里的console中看到,每隔一秒web端都会接到服务端发来的信息,但是websocket似乎在别的浏览器上支持不好,管他呢。
标签:
原文地址:http://www.cnblogs.com/wowbrionac/p/5658649.html