| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
如果对 socket 没有了解的先复习下。 soket.io 可以理解为对 WebSocket 的一种封装。好比前端的 jQuery 对原生 javascript 的封装。 soket.io 依靠事件驱动的模式,灵活的使用了自定义事件和调用事件来完成更多的场景,不必依赖过多的原生事件。
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
http.listen(88);io.on('connection', function(client){
//把当前登录的用户保存到对象 onlinePersons,并向所有在线的用户发起上线提示
//serverLogin 为自定义事件,供客户端调用
client.on('serverLogin', function(_person){
var _personObj = JSON.parse(_person);
onlinePersons[_personObj.id] = _personObj;
//向所有在线的用户发起上线提示
//触发客户端的 clientTips 事件
//clientTips 为客户端的自定义事件
io.emit('clientTips', JSON.stringify(onlinePersons));
})
//当监听到客户端有用户在移动,就向所有在线用户发起移动信息,触发客户端 clientMove 事件
//serverMove 为自定义事件,供客户端调用
client.on('serverMove', function(_person){
var _personObj = JSON.parse(_person);
onlinePersons[_personObj.id] = _personObj;
console.log('serverLogin', onlinePersons);
//clientTips 为客户端的自定义事件
io.emit('clientMove', _person);
});
})该案例是模仿在线游戏 运行步骤
案例思路
| Back | FazBrowse Home | New Git URL |