摘要: 这两天用了点时间,研究了一下,用php socket+ websocket实现了一个小型的聊天室。我采用的是 select/poll 的同步模型,虽然扛不住很大的并发,但是理论上 维持 几百人在线还是可以的。 目前完成了第一版。这一版的由于采用的是 select/poll 和单进程,所以在win下面 阅读全文
posted @ 2016-12-13 14:17 NickBai 阅读(22867) 评论(4) 推荐(1) 编辑
摘要: 今天想研究一下php的libevent扩展,于是就在本地的虚拟机上尝试安装。由于本人的linux基础不是很好,中间走了一些弯路。现在记录一下,具体的我安装的步骤,希望能让需要的人少走弯路。 1、安装php环境 sudo apt-get install php5 执行完这个命令之后,Ubuntu系统会 阅读全文
posted @ 2016-12-08 14:57 NickBai 阅读(1430) 评论(0) 推荐(0) 编辑
摘要: socket系类函数 stream系列函数: 阅读全文
posted @ 2016-12-08 09:38 NickBai 阅读(891) 评论(0) 推荐(0) 编辑
摘要: php进程间通信的另外一个手段就是通过 信号 来在进程间传递信息。信号是一种系统调用。通常我们用的kill命令就是发送某个信号给某个进程的。具体有哪些信号可以在liunx/mac中运行kill -l查看。 一些php信号的意思如下: SIGHUP 终止进程 终端线路挂断 SIGINT 终止进程 中断 阅读全文
posted @ 2016-12-05 16:44 NickBai 阅读(1565) 评论(1) 推荐(0) 编辑
摘要: 首先我们来讲解一下,php如何实现共享内存。(注意:本示例是在linux下,请勿在windows下尝试此代码,并且必须是在php-cli模式下) php提供了两种实现共享内存的扩展。下面我们来一一讲解。 一、shmop 系类函数 注意两点: 1、shmop_read 函数 第2个参数 是读取的起始位 阅读全文
posted @ 2016-12-05 11:48 NickBai 阅读(5436) 评论(1) 推荐(0) 编辑
摘要: 前面介绍了怎么通过消息管道(有名消息管道)进行进程间通信,下面介绍如何通过消息队列实现进程间通信。 首先我们来看一下如何创建一个消息队列。 在php中通过这两句话就可以创建一个消息队列。 ftok 函数,是可以将一个路径转换成 消息队列 可用的key值。 msg_get_queue函数的第一个参数 阅读全文
posted @ 2016-12-03 10:26 NickBai 阅读(1094) 评论(1) 推荐(0) 编辑
摘要: php进行进程间通信的方式有好几种:消息队列,管道,共享内存,socket,信号。本文介绍的是通过有名管道的方式。 管道PIPE 管道用于承载简称之间的通讯数据。为了方便理解,可以将管道比作文件,进程A将数据写到管道P中,然后进程B从管道P中读取数据。php提供的管道操作API与操作文件的API基本 阅读全文
posted @ 2016-12-02 13:53 NickBai 阅读(2569) 评论(0) 推荐(0) 编辑
摘要: 进程间通信 就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程 阅读全文
posted @ 2016-12-02 09:22 NickBai 阅读(2809) 评论(0) 推荐(0) 编辑
摘要: 本文内容为转载,原文地址:http://blog.csdn.net/jhq0113/article/details/45769989 代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 U 阅读全文
posted @ 2016-11-29 17:32 NickBai 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 比方说我有一个类,当用户对账户进行充值的时候,需要给用户添加相应的经验和积分。传统的做法大概的代码如下: 比如某一天,突然接到用户充值之后不用给用户增加经验了或是用户充值之后要赠送用 阅读全文
posted @ 2016-11-29 17:09 NickBai 阅读(206) 评论(0) 推荐(0) 编辑