服务器信息传输

// send to current request socket client
socket.emit(‘message’, “this is a test”);

// sending to all clients except sender
socket.broadcast.emit(‘message’, “this is a test”);

// sending to all clients in ‘game’ room(channel) except sender
socket.broadcast.to(‘game’).emit(‘message’, ‘nice game’);

// sending to all clients, include sender
io.sockets.emit(‘message’, “this is a test”);

// sending to all clients in ‘game’ room(channel), include sender
io.sockets.in(‘game’).emit(‘message’, ‘cool game’);

// sending to individual socketid
io.sockets.socket(socketid).emit(‘message’, ‘for your eyes only’);
上述集中方式为socket.io常用的数据传输方式,

io.sockets.on(‘connection’, function (socket) {

});

回调函数的socket参数为一个 client 与服务器的连接标示,不同的 client 会有不同的连接标示。

Read More →

《浪潮之巅》的作者吴军,在《得到》专栏里,提及了Google刚进中国时候的一件事。刚开始,Google总部对中国研发团队的评价非常低,因为“出工不出活儿”,北京的三四个工程师都抵不上Google总部的一个工程师。

后来吴军帮忙分析了原因,他发现,那些工程师都不善于找到最重要的工作并优先完成它们。中国研发团队里,所有的工程师都是新人,没有人告诉他们该如何工作,而在Google总部,新员工只是一小部分,所以很容易在有经验的员工带动下快速掌握工作技能。

之后两年,Google总部的工程师陆续来中国帮助团队梳理工作方式,而中国团队也会去Google总部交流,这种情况就得到了改善,中国研发团队也最终得到了总部的认可。

Google工程师这么聪明的一群人,尚且需要学习正确的工作方式,才能有效产出,何况大多数人?

我们一直都认为,如果一个人智商情商正常、学习和工作意愿高,就一定能出成绩。

然而,我带过很多人,也招过很多人,却发现一个奇怪的现象:有一些人,十分有愿意学习,非常努力,智商情商也都正常,然而工作产出却非常低,甚至不如很多资质低于他们的人。

我一直百思不得其解,一度怀疑自己看人不准。直到前阵子看到吴军的这段叙述,才幡然醒悟,仔细回想了这些人的工作方式,将他们与产出高的人相比,发现他们无一例外都存在这三个问题:

Read More →

由于项目需要,写了一个php文件缓存类,如果不使用命名空间,请把namespace那行注释


使用方法如下

$cache = \tool\cache::factory('test',['array'=>'123','test'=>'bbbb']); //默认2小时过期时间写入
$cache = \tool\cache::factory('test',['array'=>'123','test'=>'bbbb',24]); //24小时过期时间写入
$cache = \tool\cache::factory('test',['array'=>'123','test'=>'bbbb','','mydir']); //默认2小时写入根目录下的mydir目录
$cache = \tool\cache::factory('test'); //读取
\tool\cache::factory('test',NULL); //删除

Redis Setbit 命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
语法
redis Setbit 命令基本语法如下:
redis 127.0.0.1:6379> Setbit KEY_NAME OFFSET
可用版本
>= 2.2.0
返回值
指定偏移量原来储存的位。
实例
redis> SETBIT bit 10086 1
(integer) 0

redis> GETBIT bit 10086
(integer) 1

redis> GETBIT bit 100 # bit 默认被初始化为 0
(integer) 0

Redis 字符串(string)

Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
语法
redis Mget 命令基本语法如下:
redis 127.0.0.1:6379> MGET KEY1 KEY2 .. KEYN
可用版本
>= 1.0.0
返回值
一个包含所有给定 key 的值的列表。
实例
redis 127.0.0.1:6379> SET key1 “hello”
OK
redis 127.0.0.1:6379> SET key2 “world”
OK
redis 127.0.0.1:6379> MGET key1 key2 someOtherKey
1) “Hello”
2) “World”
3) (nil)

Redis 字符串(string)