文档章节

PHP+Swoole网络通信框架

木木……Nick
 木木……Nick
发布于 2015/12/08 20:53
字数 405
阅读 47
收藏 0

        Swoole主要功能: PHP语言的异步、并行、高性能网络通信框架,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。

WebSocket Server

$serv = new swoole_websocket_server("127.0.0.1", 9502);
$serv->on('Open', function($server, $req) 
{    
    echo "connection open: ".$req->fd;
});
$serv->on('Message', function($server, $frame) 
{    
    echo "message: ".$frame->data;    
    $server->push($frame->fd, json_encode(["hello", "world"]));
});
$serv->on('Close', function($server, $fd) 
{    echo "connection close: ".$fd;
});

$serv->start();

TCP Server

$serv = new swoole_server("127.0.0.1", 9501);
$serv->set(array(
    'worker_num' => 8,   //工作进程数量
    'daemonize' => true, //是否作为守护进程
));
$serv->on('connect', function ($serv, $fd){
    echo "Client:Connect.\n";
});
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, 'Swoole: '.$data);
    $serv->close($fd);
});
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});
$serv->start();

TCP Client

$client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
//设置事件回调函数
$client->on("connect", function($cli) {
    $cli->send("hello world\n");
});
$client->on("receive", function($cli, $data){
    echo "Received: ".$data."\n";
});
$client->on("error", function($cli){
    echo "Connect failed\n";
});
$client->on("close", function($cli){
    echo "Connection close\n";
});
//发起网络连接
$client->connect('127.0.0.1', 9501, 0.5);

自己工作中用到的就这三个,具体的配置和更多的功能,可以访问swoole网站: http://www.swoole.com/

注明: Apache 配置swoole的时候,记得在两个配置文件php.ini 中,加入 swoole.so 否则会导致部分访问无效

© 著作权归作者所有

共有 人打赏支持
木木……Nick
粉丝 2
博文 12
码字总数 2996
作品 0
私信 提问
centos安装php扩展swoole及使用

swoole是一个PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列...

15834278076
2018/12/04
0
0
用PHP+swoole做简单的聊天室

websocket是不同于http的另外一种网络通信协议,能够进行双向通信,基于此,可开发出各种实时通信产品,我简单做了个聊天室demo,顺便分享一下。 使用方法 安装完php 和swoole扩展之后,直接...

阿泽Aze
2018/06/26
0
0
重新定义PHP : swool

使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。 Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需...

旋转木马-千里马
2015/12/29
386
0
使用PHP+Swoole实现的网页即时聊天工具:PHPWebIM

使用PHP+Swoole实现的网页即时聊天工具 全异步非阻塞Server,可以同时支持数百万TCP连接在线 同时支持websocket+comet2种兼容协议,可用于所有种类的浏览器包括IE 拥有完整的UI界面 支持单聊...

lock-li
2016/05/03
365
0
PHP并发IO编程之路

并发IO问题一直是后端编程中的技术挑战,从最早的同步阻塞Fork进程,到多进程/多线程,到现在的异步IO、协程。PHP程序员因为有强大的LAMP框架,对底层方面的知识知之甚少,本文目的就是详细介...

snowing1990
2016/03/24
41
0

没有更多内容

加载失败,请刷新页面

加载更多

导出表格

https://blog.csdn.net/hhzzcc_/article/details/80419396

Js_Mei
23分钟前
0
0
Ubuntu中安装Elasticsearch

1.安装jre elasticsearch是使用java开发的搜索引擎,因此其运行依赖于java runtime environment,我们在这里不使用Oracel的官方jre,改为使用open-jre。 运行环境: ubuntu:18.04 jre:openj...

cloes
41分钟前
0
0
nginx rails 详细站点配置入门教程

Ruby on Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用,到控制器中的访问请求和反馈,到封装数据库的模型,R...

xiangyunyan
今天
4
0
Shiro

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

嘿嘿嘿IT
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部