<?php define('DEBUG', 'on'); define("WEBPATH", str_replace("\\","/", __DIR__)); require __DIR__ . '/../libs/lib_config.php'; class WebSocket extends Swoole\Network\Protocol\WebSocket { /** * 下线时,通知所有人 */ function onClose($serv, $client_id, $from_id) { //将下线消息发送给所有人 //$this->log("onOffline: " . $client_id); //$this->broadcast($client_id, "onOffline: " . $client_id); parent::onClose($serv, $client_id, $from_id); } /** * 接收到消息时 * @see WSProtocol::onMessage() */ function onMessage($client_id, $ws) { $this->log("onMessage: ".$client_id.' = '.$ws['message']); $this->send($client_id, "Server: ".$ws['message']); //$this->broadcast($client_id, $ws['message']); } function broadcast($client_id, $msg) { foreach ($this->connections as $clid => $info) { if ($client_id != $clid) { $this->send($clid, $msg); } } } } $AppSvr = new WebSocket(); $AppSvr->loadSetting(__DIR__."/swoole.ini"); //加载配置文件 $AppSvr->setLogger(new \Swoole\Log\EchoLog(true)); //Logger $server = new \Swoole\Network\Server('0.0.0.0', 9503); $server->setProtocol($AppSvr); //$server->daemonize(); //作为守护进程 $server->run(array('worker_num' =>4));
http://wiki.swoole.com/wiki/page/6.html
Swoole:重新定义PHP
PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。
Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网、车联网、智能家居等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。
linux安装swoole扩展
1.首先我们要安装swoole扩展的话,需要把它的包下载下来,下载地址是:
https://github.com/swoole/swoole-src
2.下载下来之后进行解压:
unzip swoole-src-master.zip
3.解压之后打开解压的目录,我是解压在目录/opt下面的,所以
cd /opt/swoole-src-master
4.然后使用phpize重新编译php,执行命令:
/usr/bin/phpize
如果你找不到phpize文件在哪,可以用指令查找,最好在根目录下,这样它才能从根目录下开始查找:
find -name phpize
如果你系统没有安装phpize的话,执行命令安装就可以了,指令为:
yum install php-devel
5.然后再进行配置,指令为:
./configure --with-php-config=/usr/bin/php-config
因为我的php-config文件在/usr/bin/下面,所以只要你用自己的php-config路径就可以了,其他都一致
6.配置好之后,进行编译安装:
make && make install
但在这步可能会出现问题:
/usr/include/php/ext/pcre/php_pcre.h:29:18: error: pcre.h: No such file or directory
该错误是因为没有安装pcre-devel导致的,所有只要安装下就可以了
yum install pcre-devel
7.安装好之后会输出一个路径,那个就是生成swoole.so的文件路径,然后配置php.ini,把该路径配置进去:
extension=/usr/lib/php/modules/swoole.so
8.然后重启服务器
service httpd restart
评论回复