TSF 是腾讯开源的一套基于协程和 Swoole 驱动的高性能 PHP 框架,可以帮助开发者快速开发和部署具备高 IO 吞吐能力的 HTTP/TCP/UDP 服务。
TSF 具备以下特点:
基于 PHP,相比 C++ 等语言具有更高的开发效率
基于 Swoole 强大的异步 IO 、定时器能力,极大的扩展了框架能力
实现了 PHP 协程能力,通过同步的开发方式就可以实现异步 IO 的能力
支持服务监控恢复能力
要求:
php 5.5 +
Swoole 1.7.18 +
linux、OS X
服务器配置:
vim server.ini [server] ;server type:tcp,udp,http type = http ; port listen[] = 12312 ; entrance file root = '/data/web_deployment/serv/test/index.php' ;php start path php = '/usr/local/php/bin/php' [setting] ; worker process num worker_num = 16 ; task process num task_worker_num = 0 ; dispatch mode dispatch_mode = 2 ; daemonize daemonize = 1 ; system log log_file = '/data/log/test.log'
启动服务器:
cd /root/tsf/bin/ php swoole testHttpServ start
使用 TCP/UDP/HTTP 客户端:
$tcpReturn=(yield $this->tcpTest()); $udpReturn=(yield $this->udpTest()); $httpReturn=(yield $this->httpTest()); public function tcpTest(){ $ip = '127.0.0.1'; $port = '9905'; $data = 'test'; $timeout = 0.5; //second yield new Swoole\Client\TCP($ip, $port, $data, $timeout); } public function udpTest(){ $ip = '127.0.0.1'; $port = '9905'; $data = 'test'; $timeout = 0.5; //second yield new Swoole\Client\UDP($ip, $port, $data, $timeout); } public function httpTest(){ $url='http://www.qq.com'; $httpRequest= new Swoole\Client\HTTP($url); $data='testdata'; $header = array( 'Content-Length' => 12345, ); yield $httpRequest->get($url); //yield $httpRequest->post($path, $data, $header); }
项目目前是存档状态,感谢您对腾讯开源项目的关注!您可以继续fork后更新迭代,感谢理解和支持;如果您有其他疑问,建议请发送邮件:tencentopen@tencent.com 与我们联系 Tencent Server Framework Overview Tencent Server Framework is a coroutine and Swoole based server framewor
SDK下载链接 更加以上SDK的步骤建立Maven仓库的Settings.xml文件,在按照文档中的步骤执行mvn help:effective-settings命令验证当前生效的系统生效的配置(当前生效的settings文件验证与IDEA中maven选择的Setting生效文件没有冲突),在执行验证时将查找系统中配置的Maven环境指定的maven中的settings配置,也就是说在之后引入sd
微服务平台 TSF - 文档中心 - 腾讯云 (tencent.com) TSF 服务治理平台对比基于开源 SpringCloud 自建平台,具有以下优势: 对比项 腾讯微服务平台 TSF Paas 平台 基于开源 SpringCloud 自建平台 服务注册中心 平台提供高可用的注册中心集群,金融级别容灾。 自行搭建,维护困难,可靠性差。 调用链能力 符合国人习惯的交互方式,与日志服务联动。 使用
pom.xml文件新加 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <exclusions>
/** * Tencent is pleased to support the open source community by making TSF Solution available. * Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved. * Licensed under the BSD 3
<?php use Yurun\Util\YurunHttp; use Yurun\Util\HttpRequest; // 设置默认请求处理器为 Swoole YurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class); // Swoole 处理器必须在协程中调用 go('test'); functio
本文向大家介绍PHP框架Swoole定时器Timer特性分析,包括了PHP框架Swoole定时器Timer特性分析的使用技巧和注意事项,需要的朋友参考一下 本文所述PHP框架Swoole定时器Timer特性分析具有很好的实用价值,值得PHP程序开发人员学习借鉴。具体分析如下: 首先,在各种业务型系统中,往往需要服务器在后台扫描相关数据,触发相应的统计、通知等操作。 比如对于一个项目管理系统,需要每
驱动程序版本为: 我的问题是,当我使用api find和一些来自java的过滤器时,操作需要15秒。 我检查了mongo服务器日志文件,发现跟踪是一个命令,而不是一个查询: 2015-09-01T12:11:47.496+0200I命令[conn503]命令b.$CMD命令:计数{count:“logs”,查询:{timestamp:{$GTE:新日期(1433109600000)},aplica
本文向大家介绍php基于协程实现异步的方法分析,包括了php基于协程实现异步的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php基于协程实现异步的方法。分享给大家供大家参考,具体如下: github上php的协程大部分是根据这篇文章实现的:http://nikic.github.io/2012/12/22/Cooperative-multitasking-using-corou
swoole 的用法实际上对于大多数新手来说一直并不怎么友好,其实这不怪 swoole,只能怪萌新们确实底子不够,有些东西理解起来可能真的比较困难。今天斗胆尝试引入一个应用场景和简单的代码案例来做个简单的入门,算是抛砖头引和田玉吧。 老韩 wiki.swoole.com 以及一些社区中一直说 swoole 既可以同步又可以异步,我找一些原话,你们感受一下: Swoole 不仅支持异步,还支持同步。