Login | Packages | Support | Bugs

Return

Changelog for swoole
Release What has changed?
4.2.7 + `Server` adds `task_async` config item, supports switching between pure sync mode and async mode, sync mode by default (backward compatibility)
+ Support `gethostbyname` in `Runtime::enableCoroutine`
+ Support `PHP7.3RC5` version
* Fixed low version `GCC` compatibility problem (#2094)
* Fixed ssl timeout bug for `client->recv`
* Fixed `Socks5` proxy not work (#2103)
* Fixed the bug that `connected` property of `Co\Redis` was not updated. (#2104)
* Fixed `taskWait` segment fault (#2098)
* Fixed `Co\Socket` reuse problem
* Fixed a bug in `Process\Pool`
- `Swoole\Serialize` will be forced to close in PHP73 (unsupported temporarily)
4.2.6 + Built-in `hiredis` dependency, no longer needed to compile it separately, refactor `Co\Redis`, more stable
+ Improve the compilation test of the Alpine system
+ Refactor `Co::exec` and functions about file to fix its execution and output issues in some scenarios
* Fixed errors about coroutine switching in multi-level nesting and multiple suspend scenarios
* Fixed connection leaks that may occur when both sides are closed at the same time
* Fixed `channel` bug in blocking scenarios
* Fixed `mysql->prepare` return true (#2080)
* Fixed the reference count problem when use `swoole_table` as an array (#2079)
* Fixed `ssl_host_name` cannot open SNI (#2085)
* Fixed `kqueue` nanosecond conversion problem under MacOS (#2087)
* Fixed all `swoole_object` dangling pointer
* Add a series of scripting tools for the underlying development
4.2.5 * Alpine compatibility (#2071)
* Fixed task_ipc_mode bug (#2072)
* Improve client proxy settings
* Fixed SSL client bug (#2053)
4.2.4 + Refactor HTTP2 client, fix disconnection reconnection problem, fix cookie problem
+ Added coroutine binding detection and friendly error prompts
+ Runtime stream hook adds error_text support
* Increase asynchronous redis callback function type detection
* Fixed http client unable to execute other requests after using the download API
* Fixed `swoole_http_response->detach` cross-function memory error
* Fixed coroutine PDO connection abnormal disconnection
* parameter parsing errors return FALSE (instead of null)
* Fixed `Exception` loss after coroutine switchover
* Fixed `task_max_request` does not work
* Optimize MySQL response packet integrity detection
* Fix coroutine flock deadlock problem
* Fixed the error that the underlying swoole_buffer did not release the object
* Fixed bugs caused by multiple `Content-Length` headers
* Enhanced zval type check, defensive programming
* Fixed the bug of the HTTP coroutine client setData using the object (stream), refactoring the properties parser of the HTTP coroutine
* openssl error cleanup optimization
* `co::fread` optimized for fseek and non-normal file reading
* swoole_server TCP and UDP mode separation
* Fixed the problem caused by passing invalid parameters when creating a server
* Fixed the bug by `addProcess` in BASE mode
* Fixed the problem that the task process uses `reload_async` (asynchronous safe restart feature)
* Improve `package_eof` illegal empty string check
- Remove code for deprecated multi-threaded mode
4.2.3 This version is mostly based on the v4.2.2 made some fixes
+ Add `Co::statvfs` to retrieve file system information
* Fixed non-array property error on swoole_http_response object
* Fixed bad version number, add automated fixing tool
4.2.2 + Task process supports asynchronous and coroutine
+ Refactor `addListener`, now developers can add new service listeners in any order
+ Support mixed server of `http`, `http2`, `websocket`, `tcp`
+ Completed coroutine redis client method parameter definition
+ `Co::readFile` supports reading non-disk files
+ Now static_handler supports more file types and skips files with length 0
* Fixed multipart/form-data in some cases parsing errors
* Fixed the dislocation of sendfile data on MacOS
* Fixed bug where SIGRTMIN processing error caused the log file to fail to reopen
* Fixed a bug where redis-client last error value was not cleared and the next request was incorrect
* Fixed a bug about connecting a connected asynchronous redis coredump
* Fixed MySQL client protocol processing parameter binding NULL bug
* Fixed segment fault caused by file hook, closed the include/require coroutine
* Fixed the socket hook construct error
* Fixed the sleep hook
* Fixed a bug that returned an illegal pointer when reading an unset object property
* Fixed the bug that after event_wait, EG(scope) is not restored in PHP70, causing private properties to be inaccessible
* Alpine dependency compatibility optimization
* Cygwin compatibility optimization
* Support log_level to block warning information
* Distinguish 204 response then skip body processing
* The underlying code is cleaned up, all TSRM macros, PHP5 compatible macros and functions are removed, useless stack allocation and multiple pointers are reduced, FASTZPP is re-enabled to improve parameter parsing performance
* Error tips optimization, error reporting guidelines will be generated when the underlying crash occurs
4.2.1 + This version is based on the previous version and made some fixes.
* Fixed compilation failure caused by no time_nanosleep in some environments
* Fixed loading error in PHP-ZTS version
* Fixed the Bad file descriptor error when using coroutine in dispatch mode 7
* Fixed exit interceptor does not work
* Fixed too long domain name DNS buffer overflow in client
4.2.0 + Add new coroutine hooks, `tcp`, `udp`, `ssl`, `tls`, `sleep`, `usleep`, and file read and write, `mkdir`...etc, be async automatically
+ New ability of the server/client to send the `swoole_websocket_frame` object directly, support any type of `frame` construction, send and receive, support `__toString`
+ Better `AIO`
+ Add the `Process\Pool::getProcess` method
+ Support `--with-hiredis-dir`, `--with-nghttp2-dir` compiling parameters
* Enhanced `send_yield`, automatic retry within the timeout
* Enhanced timer round detection, repaired millisecond-level ultra-short timer execution error
* Enable `TCP_NODELAY` by default, turn off `Nagle algorithm`, reduce latency
* More standardized PECL package
* Re-support the sending of HTTP-header with custom `content-length` of 0
* Fixed an issue that can not access the Private/Protect properties in the class after coroutine yield caused by `EG(scope)` not switched in PHP7.0.x
* Fixed the error opcode and finish status in `websocket_server`
* Fixed the `async_dns_lookup` bug
* Completed the code about `channel.c` overflow space handling
* Fixed the bug of `channel->close`
* Fixed the bug of coroutine `socket->recv_package`
* Repair MySQL Statement->execute does not support null parameters
* Support for identifying `form-data` encoding with a semicolon-separated `boundary`
* Add many high-quality unit tests, greater stability
- Remove useless time wheel algorithm
4.1.2 + Add `socket_hook`
* Fix bugs in nested coroutines
* Fixed variable reference count problem when `exit` in the coroutine
* Coroutine MySQL`query`, `prepare`, `execute` does not time out by default, conforms to the documentation API description
* The MySQL transaction operation of the coroutine is forbidden to use the defer mode, and the developer needs to use it explicitly. The concurrent open transaction can be replaced by `query`.
* Fix the problem of mmap `MAP_FAILED` return value detection
+ Add PECL package verification
4.1.1 + **Support `Redis`, `PDO`, `MySQLi`**, use `Swoole\Runtime::enableCoroutine()` to make them become Async IO by coroutine scheduler
+ **Coroutine tracking**: `Coroutine::listCoroutines()` can list all current coroutines, `Coroutine::getBackTrace($cid)` gets the function call stack of a coroutine
+ Refactoring `Co\Channel` C code to C++, solving unintended consequences of complex scenes and achieving high stability
+ Refactoring `Co\Http\Client` C code to C++ coroutine mode, solving asynchronous timing problems and achieving high stability
+ Support for using `exit` in coroutines and Servers, which will throw a catchable `\Swoole\ExitException` exception.
+ Remove PCRE dependency limits for all iterators (table/connection/coroutine_list)
+ Add the `open_websocket_close_frame` configuration to receive close frames in the onMessage event
+ Remove the `Http\Response->gzip()` method and use the `http_compression` configuration item instead. The bottom layer will automatically determine the client's incoming `Accept-Encoding` to select the appropriate compression method, add Google BR compression support
+ Add `Co\Http\Client->addData()` method to send the data in the memory as the content of the uploaded file.
+ `Solaris` system support
+ Http2 supports `MAX_FRAME_SIZE` framing transmission and `MAX_HEADER_LIST_SIZE` processing. The client adds `isStreamExist` method to detect whether there is a corresponding stream.
+ `swoole_http_response->status` increases the `reason` parameter
* Fixed an issue where unsigned arguments in MySQL prepare used signed values ??to cause numeric overflows
* Fixed an issue with no coroutine in the `onRequest` callback for HTTP2
* Fixed the problem that `tasking_num` became `-1` in some special cases
* Fixed HTTP2-server window-update frame construction error
* Fix all levels of compile warning under all PHP versions
* Compile error will occur when GCC version is less than 4.8
* Fixed MySQL's memory allocation caused by the use of prepare statement without parameter binding
* Fixed old stream memory loss leak when HTTP2 client reconnect
* Fixed wrong package info by version 4.1.0
4.1.0 + **Support `Redis`, `PDO`, `MySQLi`**, use `Swoole\Runtime::enableCoroutine()` to make them become Async IO by coroutine scheduler
+ **Coroutine tracking**: `Coroutine::listCoroutines()` can list all current coroutines, `Coroutine::getBackTrace($cid)` gets the function call stack of a coroutine
+ Refactoring `Co\Channel` C code to C++, solving unintended consequences of complex scenes and achieving high stability
+ Refactoring `Co\Http\Client` C code to C++ coroutine mode, solving asynchronous timing problems and achieving high stability
+ Support for using `exit` in coroutines and Servers, which will throw a catchable `\Swoole\ExitException` exception.
+ Remove PCRE dependency limits for all iterators (table/connection/coroutine_list)
+ Add the `open_websocket_close_frame` configuration to receive close frames in the onMessage event
+ Remove the `Http\Response->gzip()` method and use the `http_compression` configuration item instead. The bottom layer will automatically determine the client's incoming `Accept-Encoding` to select the appropriate compression method, add Google BR compression support
+ Add `Co\Http\Client->addData()` method to send the data in the memory as the content of the uploaded file.
+ `Solaris` system support
+ Http2 supports `MAX_FRAME_SIZE` framing transmission and `MAX_HEADER_LIST_SIZE` processing. The client adds `isStreamExist` method to detect whether there is a corresponding stream.
+ `swoole_http_response->status` increases the `reason` parameter
* Fixed an issue where unsigned arguments in MySQL prepare used signed values ??to cause numeric overflows
* Fixed an issue with no coroutine in the `onRequest` callback for HTTP2
* Fixed the problem that `tasking_num` became `-1` in some special cases
* Fixed HTTP2-server window-update frame construction error
* Fix all levels of compile warning under all PHP versions
* Compile error will occur when GCC version is less than 4.8
* Fixed MySQL's memory allocation caused by the use of prepare statement without parameter binding
* Fixed old stream memory loss leak when HTTP2 client reconnect
4.0.4 + TaskWait support coroutine scheduling now, call "taskwait" in coroutine would be no longer blocked
+ Better Http2 support, we can use "\Swoole\Coroutine\Http2\Client" to structure any GRPC client now
* Fixed a kernel level bug in an infrequent extreme case when using SWOOLE_PROCESS
* Fixed the connection closed when Coroutine WebSocket Client recv timeout
* Fixed PHP class extends without parent calls crash
* Fixed user call "__destruct" brings crash
* Fixed upload filename too long bug
* Fixed HAVE_SOCKETS macro does not exist, including static compiler
* Fixed co::suspend and co::resume assert failed
* Use SSL_pending
* Better signal handler on MacOS
4.0.3 - Fixed `Channel`core dump when high concurrency
- Add `Channel->pop(float $timeout)`, unlimited default
- Remove`Channel->select`
- Fixed call `Co\Client->close`memory error
- `WebSocket\Server` support disconnect with code and reason
- Improve `Coroutine\Http2\Client`:
- Rename `swoole_http2_response` properties to plural form.
- Add Http2 `WINDOW_SIZE_UPDATE` to solve dead lock, unlimited default
- Add `Client->recv(float $timeout)`, unlimited default
- Add `cookies` and `set_cookie_headers` properties
- Fixed all memory errors and invalid properties error
- Fixed core dump when send without recv
4.0.2 - Support ob functions in coroutine
- Better Channel
- Fixed all known bugs about Client
- Fixed all compiler warnings in PHP73
4.0.1 - Added enable_coroutine option
- Added MySQL8 caching_sha2_password supports
- Refactor channel
4.0.0 - Using c stackful coroutine
- Allow to create server in multiple processes
- Fixed issue where http2 server could not send more than 16K data to Chrome browser client
- Added Channel->peek method for peeping data
- Fixed issue where Server->pause/resume could not be used under SWOOLE_PROCESS
- Removed Linux AIO and use thread pool for asynchronous file IO anyway
- Added MySQL stored procedure supports
2.2.0 - Added Co\Socket
- Added Http\Response->detach
- Added Http\Response::create
- Added Http\Response->redirect
- Fixed udp connect no effect
- Fixed http2 server cannot send more than 16k of data
- Fixed Co\Redis connection memory leak bug
- Fixed invalid error log thrown when SOCK_DGRAM type client connection was rejected
1.10.5 - Added Lock::destory
- Added Lock::$errCode
- Fixed RWLock unavailable
- Fixed arg of udp connect no effect
- Added setting window size support for http2 client
2.1.3 - Fixed failed to compile on docker
- Fixed Http\Reponse::write is unavailable
- Fixed ProcessPool crash without onWorkerStart callback
- Fixed failed to compile with --disable-coroutine
- Fixed failed to compile with --enable-coroutinepostgresql on php-7.1
1.10.4 - Fixed failed to compile on docker
- Allow to add timer in master process
- Added configure options for pecl script
2.1.2 - Added PostgreSQL coroutine client (depends on libpg)
- Added Co::readFile
- Added Co::writeFile
- Added swoole_process_pool
- Added swoole_msgqueue
1.10.3 - Added swoole_event_dispatch
- Added swoole_event_isset
- Optimized accept performance
- Added before parameter to swoole_event_cycle
- Added swoole_process::setBlocking
- Added swoole_http_request::getData
1.10.2 - Fixed crash when max_request=1 was set in BASE mode
- Fixed WebSocket client unwrapping when the handshake response and the data frame are in the same transmission unit
- Fixed SSL connection cannot use sendfile
- Fixed lose process due to frequent reload in BASE mode
- Fixed swoole_async_dns_lookup crash when jemalloc is enabled
- Fixed crash when opening opcache.enable_cli=On in PHP7.2
- Modify the error information when the client fails to resolve the domain name
- Process is marked as idle during reload and no longer receives new requests
2.1.1 - Added co::fgets
- Added co::exec
- Added Client::peek
- Added Co\Redis::$connected property
- Added Co\MySQL::$connected property
2.1.0 - Added shortname
- Added channel
- Added non-namespace style API
1.10.1 - Fixed Http2\Server cannot set http header
- Added http_proxy_user and http_proxy_password options
- Added Client::shutdown
- Added WebSocket\server::isEstablished
- Added debug_mode option
- HttpClient compatible with Unity3D
1.10.0 - Update Table::incr and Table::decr support signed integers
- Compatible with PHP-7.2
- Added Event::cycle function
- Fixed Event::del function can not remove the standard input handle problem
- Fixed Task process timer interval is less than the Client receive timeout, causing Client :: recv deadlock problem
- Added automatic analysis of domain names feature, asynchronous client no longer need to add additional code for domain name resolution
- Added ssl_host_name configuration items, used to verify the SSL / TLS host legitimacy
- When dispatch_mode = 3, an error log is printed when all the workers are busy
- Added a port iterator that traverses all connections to a listening port
- Fixed Table memory alignment issues on non-x86 platforms
- Fixed the issue of invalid max_request configuration in BASE mode
- Fixed WebSocket server in some client ping frame with mask data return error
- Fixed an issue where HttpClient uses the HEAD method to respond to content carrying Content-Length causing stuck
- Added STREAM module, Reactor, Worker, Task communication more flexible
- Added request_slowlog_timeout configuration, record slow request log
- Added MySQL asynchronous client support for JSON format
2.0.12 - No longer support PHP5
2.0.11 - Added swoole_mysql::prepare
- Added Coroutine::fread
- Added Coroutine::fwrite
- Added Coroutine::gethostbyname
2.0.10 - Merge branch 1.9
- Improve stability
- First stable version
1.9.23 - Fixed occasional crash bugs of SSL server
1.9.22 - Fixed MacOS occasional death cycle problems
- Added Async::exec
- Added tsl_host_name option
1.9.21 - Added Atomic\long, support 64-bit signed long integer
- Optimized the underlying GlobalMemory implementation, support the creation of an unlimited number of atoms, locks, tables
- Prohibit serialization of Swoole module object
- Fixed Http\Client download method fourth argument is invalid
- Fixed FreeBSD platform compiler error report
- Fixed sendfile on the MacOS platform there is a 5 second delay problem
- Added Process::setTimeout
2.0.9 - Merge branch 1.9
- Added Server::taskCo
- Added Coroutine::sleep
1.9.20 - Fixed 32-bit system compilation failed
- Fixed not available on PHP5
1.9.19 - Fixed worker process crash when the Channel::push exceeded 8K and failed to create temporary file
- Fixed MacOS event of shutdown cannot be executed
- Automatically create the task_tmpdir and upload_tmp_dir directories
- Fixed the SSL server to set the ciphers or ecdh_curve problems that cause the crash
- Optimize the performance of the Server::bind method using a spin lock
- Added the reload_async option to control the asynchronous reboot of the switch
- Added the tcp_fastopen option to turn on TCP fast handshake
1.9.18 - Fixed process::signal parent/child process repeatedly registers the same signal that causes the crash
- Optimize EOF protocol logic to reduce 64K stack memory requirements
- Fixed the client to set the HTTP_PROXY agent does not work properly
- Fixed asynchronous reloading a certain probability of missing process problems
- Allow dispatch_func to pass in PHP functions
- Fixed defer interface can not perform in the onWorkerStart callback
- Fixed EOF sync client has received an EAGIAN error when receiving data continuously
2.0.8 - Merge branch 1.9
1.9.17 - Refactor the worker process reload feature
- Added document_root and enable_static_handler option
- Update Server::send method, SSL connections can use sendfile
- Added 27 unit test scripts
1.9.16 - Updated server listen fail to throw Swoole\Exception exception instead of fatal error
- Added Swoole\Async::set log_file option
- Updated the swSocket_bind error log mode and accept the log_level control
- Fixd deadlock when sending large packets in UserProcess
- Added 16 unit test scripts
1.9.15 - Added MySQL client support for transaction processing
- Added static compilation support
- Added MySQL connection timeout support
- Added Redis connection timeout support
- Added Redis password and database options
- Added Atomic->wait/wakeup function, you can use the atomic count to achieve notification and wait function
- Fixed Redis\Server received more than 8K request crashes when the request
- Added 170 unit test scripts
1.9.14 - Update HttpClient, when the connection is overtime or when the server is reset, the callback is not completed
- Update HttpClient, the underlying increase request timeout mechanism
- Update the bottom of the client support mqtt agreement
- Fixed WebSocket server custom handshake method more than the header
- Fixed onTask memory leak
- Fixed HttpServer special circumstances the release of the problem of the crash occurred
- Fixed WebSocket::unpack Passing an empty string causes a problem with parsing errors
1.9.13 - Fixed WebSocket::unpack memory leak
- Fixed server accept blocking in MacOS platform
1.9.12 - Allow the WebSocket client to send empty packets to the server
- Added the callback function cache, reduce the callback function CPU consumption
- Fixed WebSocket client memory leak
- Fixed compiler error when have not SSE instruction
1.9.11 - Fixed WebSocket server onOpen callback memory leak
- Added heartbeat detection support time wheel algorithm
- Added length parameter support for sendfile API
- Added connection timeout supports for asynchronous client
- Optimized performance, reduce branch prediction failure rate
1.9.10 - Fixed compile error with enable-ringbuffer
- Fixed unix socket client cannot connect to server
- Fxied swoole_client::close crash with SWOOLE_KEEP flag on PHP-FPM
1.9.9 - Fixed a problem with the rectifier overflow of the DNS resolver request ID
- Update swoole_table::get method, increase the parameters to support only the value of a field
- Update getClientInfo return value from_id entry to reactor_id
- Fixed the Http2 client POST data when the protocol is faulty
- Fixed swoole_async_dns_lookup target host IP contains 0 when the return value is wrong
- Fixed crash when tcmalloc and jemalloc are enabled
2.0.7 - Added Coroutine::create function, allows user to create coroutine
- Fixed HttpClient crash
1.9.8 - Fix some compilation errors
1.9.7 - Added support for systemd.socket
- Added swoole\http2\client
- Added client support for http-proxy
- Added the swoole_process::close parameter, allowing only one of the pipes to be closed
- Fixed MySQL client crash when the low version gcc is compiled
- Fixed the crash in the BASE mode shutdown
- Fixed openssl-1.1 configuration detection error problem
- Fixed open_eof_split after enabling BASE mode to turn off connections in the onReceive callback function
- Fixed the problem with the Redis \ Server :: format function SET and MAP formatting errors
- Fixed a problem that caused a crash when a string type variable was passed directly when swoole.fast_serialize was enabled
- Update The reactorId variable in the onClose callback is set to -1 when the server actively shuts down the connection
1.9.6 - Added swoole_mysql::escape method to escape special characters in SQL statements
- Added support for openssl-1.1
- Fixed timer crash when more than 10,000 timers were added
- Added swoole_serialize module, PHP7 under high performance serialization library
- Fixed swoole_client->enableSSL method ssl_cert_file and ssl_key_file invalid parameters
- Added swoole_http_server support for POST multi-level KEY
- Fixed listening on UDP port setting onPacket invalid issue
2.0.6 - Fixed http client and redis client conflicts
- Fixed the coroutine client cannot use the SplQueue on PHP5
1.9.5 - Fixed taskWaitMulti special case of file descriptor leak problem
- Added pid_file option to write the master PID to file
- Added listen random port support, OS will automatically be assigned an available port
- Removed DNS cache, removed swoole_clear_dns_cache function
- Added use_async_resolver option to enable real async-io DNS lookup
1.9.4 - Fixed WebSocket server default onRequest method memory leak problem
- Fixed the problem of missing zlib library compilation failures
- Added Client->reuseCount property to query the number of multiplexed sockets
2.0.5 - Added native coroutine
- Added Swoole\Coroutine\Client
- Added Swoole\Coroutine\Http\Client
- Added Swoole\Coroutine\MySQL
- Added Swoole\Coroutine\Redis
- Fixed compile failure with ZTS
- The minimum version requirement upgrade to 5.5
2.0.4 - Added native coroutine
- Added Swoole\Coroutine\Client
- Added Swoole\Coroutine\Http\Client
- Added Swoole\Coroutine\MySQL
- Added Swoole\Coroutine\Redis
1.9.3 - Added extension function args info
- Added package_length_func option
- Added http_client download method
- Fixed issue#965
- Fixed issue#966
- Fixed issue#967
1.9.2 - Fixed zend_mm_heap corrupted on PHP7
- Fixed Async::writeFile parameter FILE_APPEND is invalid on MacOS
- Disabling Async::writeFile Use the FILE_APPEND parameter in LinuxAIO mode
- Added websocket_subprotocol option WebSocket server supports setting Sec-WebSocket-Protocol
- Fixed CentOS 4.3 or lower operating system does not exist O_CLOEXEC causes compilation to fail
- Fixed server tasking_num overflow bugs
- Added ucwords parameter to response header method
1.9.1 - Fixed server cannot shutdown when using addProcess
- Fixed Async::write function does not set the callback function to crash
- Fixed a problem with the Table Iterator missing data
- Added Async::writeFile FILE_APPEND option supports
- Added file lock to Async::write/read function
- Refactor the implementation of the Async::write function, using O_APPEND
- Refactor reopen the reopen log file feature
- Fixed taskWaitMulti unable to return to the results of the successful implementation of the task after a timeout
- Timers use monotonic time to solve the system time to modify the problem caused by timer confusion
1.9.0 - Added Swoole\Redis\Server, redis compatible protocol server framework
- Added Swoole\Mmap, high-performance disk read and write function
- Added Swoole\Client::pipe method
- Added onBufferEmpty and onBufferFull event callback for Swoole\Server
- Added buffer_high_watermark and buffer_low_watermark option for Swoole\Server
- Added swoole_clear_dns_cache function
- Added Swoole\Channel, high performance shared memory queue
- Fixed redis client type method could not return a string
- Fixed an issue when the sync client length protocol package_max_length was invalid
- Fixed low-level version of gcc running under the long-term crash happened
- Fixed invalid websocket_mask for asynchronous WebSocket client
- Fixed a problem where the MySQL client crashed accidentally when there were too many records
- Fixed Mac platform task more than 8K to create a temporary file failed to lead to the problem of undeliverable tasks
- Fixed taskWaitMulti When the process returns more than 8K receive timeout problem
- Fixed atmoic add and sub return value exists data synchronization problems
1.8.13 - Fixed WebSocket\Server automatically merge the incomplete data frame exists security vulnerabilities
- Added the upload_tmp_dir option to set the Http\Server upload file temporary directory
- Added Server->sendMessage automatic stringing function, and now sendMessage PHP variables can be sent to any other work process
- Added Process::alarm high-precision timer
- Added a bug where the protocol length function crashed when the connection was closed
- Fixed swoole_select function in PHP7 can not modify the reference array problem
1.8.12 - Fixed Table Errors caused by iterator errors when deleting elements while traversing data
- Added Http\Client new option websocket_mask controls websocket client enable mask
- Repair Swoole \ Server in BASE mode can not use task_ipc_mode = 3 configuration
- Optimize the performance of Http\Server response body gzip compression
- Fixed Timer::after can only be executed once in the task process
- Added automatic splicing incomplete data frame for WebSocket\Server
- Remove the enable_reuse_port option
- Added Swoole\Async namespace class style api
- Fixed Http\Server lisnten UDP port cannot use onReceive callback function
1.8.11 - Added new package_length_type C(unsigned 8bit)/c(signed 8bit)
- Added package_length_func option, you can use the C/C++ function to parse the packet length
- Added SIGRTMIN signal handler, used to reopen the log file
- Fixed server crash on Cygwin environment
1.8.10 - Fixed Swoole\Http\Client crash when do close connection in the callback function
- Fixed Swoole\Http\Server cannot support more than 1024 concurrent
1.8.9 - Added namespace class alias
- Added Swoole\Http\Client->addFile interface, support upload file
- Added Swoole\Event namespace and class styles
- Added Swoole\Http\Client no ContentLength response
- Added --with-openssl compiler option, can specify the path of the OpenSSL Library
- Fixed Swoole\MySQL memory leak on PHP7
- Fixed Swoole\Redis memory leak on PHP7
- Fixed Swoole\Http\Client memory leak on PHP7
- Fixed Swoole\Http\Server crash when uploading files on PHP7
1.8.8 - Added Swoole\Server\Port->getSocket
- Added Swoole\Server->getClientInfo()['close_errno'] property
- Added Swoole\Event namespace and class styles
- Added Swoole\MySQL character set support
- Added Swoole\Server->taskWaitMulti can perform multiple tasks concurrently
- Added Swoole\Client->getPeerCert method
- Added Swoole\Client->pause and Swoole\Client->resume
- Fixed Swoole\Server->taskwait cannot use in BASE mode
- Fixed Swoole\MySQL client crash when receive more than 250 field query statement
- Fixed Swoole\Server->task third parameter passed Callback Crash at PHP7
- Fixed Swoole\Http\Request->files crash on PHP7 when externally referenced
1.8.7 - Fixed Swoole\Http\Server on PHP7 crash (zdata release request data memory problems)
- Fixed Swoole\Http\Client crash when no have header setting
- Fixed Swoole\MySQL parse unixsocket type host address fail
- Fixed Swoole\Http\Client crash below the Linux-2.6.18 version of the kernel
- Fixed Swoole\MySQL nested callback crash problem on PHP7
- Update Swoole\Server maximum listening port number to 60,000
- Update Swoole\Server main thread use epoll or kqueue
- Fixed swoole_async_dns_lookup crash when hit cache
- Added Swoole\Timer::exists
1.8.6 - Added `swoole_mysql` real async mysql client
- Fixed swoole_client/swoole_http_client/swoole_redis memory leak and crash bug on PHP7
- Remove gcc_aio.c
- Remove swoole_mysqli_get_socket and swoole_mysql_query
- Remove swoole_http_server->setGlobal
- Added swoole_async_dns_lookup result cache
- Optimize websocket server performance
- Added swoole_server->task complete callback parameter
1.8.5 - Fixed swoole_mysql_query insert_id error
- Fixed swoole_websocket_server crash when receiving less than 4 bytes of data
- Added bigint ID support for swoole_mysql_query
- Fixed sync Swoole\Client memory leaks
- Fixed Swoole\Http\Client crash when the connection is closed
1.8.4 - Fixed Swoole\Redis callback function memory leak bugs
- Fixed swoole_mysql_queue function memory leak bugs
- Fixed Swoole\Http\Client memory leak bugs
- Fixed issue #585
- Fixed issue #590
- Added unixsock support for async client
- Added high-precision time for Swoole\Http\Request
1.8.3 - Added swoole_server->getLastError method for getting the last error code
- Added form-data supports for Http2 protocol
- Added COOKIE support for Http2 protocol
- Added SSL/TLS encryption support for http client
- Fixed issue #527
- Fixed issue #553
- Fixed crash when the number of CPU cores than is set reactor_num
- Fixed swoole_client callback function memory leak
- Added support for asynchronous full reload of server security
1.8.2 - Added http2 supports for swoole_http_server
- Added swoole_server->stop method used to stop the worker process
- Added log_level option for swoole_server settings
- Fixed swoole_websocket_server receives data over the issue 64K crashes
- Added multi-port monitor is not set callback function causes the program to crash
- Enhance the SSL/TLS encrypted safety level, now used by default TLS1.2/ECDHA_RSA encryption algorithm
- Fixed onFinish event callbacks memory leak problem
- Fixed the problem task finish can not be used under BASE mode
1.8.1 - Added psr-4 style namespace classes alias
- Added swoole_server->protect methods used to protect the connection will not close by heartbeat thread
- Added swoole_websocker_server::pack and swoole_websocker_server::unpack static method
- Added redis subscribe and publish messages supports
- Added swoole_http_client for gzip content compression support
- Added swoole_client->reuse property
- Fixed async client incidental core dump
- Fixed async client memory leak
- Fixed compile failed with enable-openssl on MacOS
1.8.0 - Fixed swoole_process::signal core dump on PHP7
- Refactor after/tick timer
- Refactor swoole_websocket_server
- Added async redis client
- Added async http/websocket client
- Added swoole_client->reuse property
- Added swoole_server->defer/swoole_event_defer
- Added support for multi-port hybrid protocol
- Added configure option for tcmalloc and jemalloc
- Remove swoole_server->addtimer/swoole_timer_add/swoole_timer_del
- Remove swoole_server->onTimer event callback
- Remove swoole_server->handler
- Update lish.h to version-1.9.9
1.7.22 - Fixed memory leak in PHP7
- Fixed core dump in PHP7
- Added swoole_mysql_query
- Fixed swoole_table->del damage the memory
- Added swoole_websocket_server->exist
- Added swoole_server ssl_client_cert_file settings
- Fixed timer exec_time overflow cause stop
1.7.21 - Fixed memory leak swoole_client synchronous mode occurs when the server closes
- Fixed POST/Upload problem can not handle more than 8K
- Added swoole_http_response->sendfile method for sending large files
- Fixed swoole_client core dump when enable SSL/TLS encrypted
- Added swoole_server->getSocket/swoole_client->getSocket
- Fixed UDP large package in question Worker process occurs dispatch_mode = 1/3 deadlock
- Added swoole_client->sleep/wakeup method for suspend/resume data reception event
- Fixed UDP large package data is abnormal
1.7.20 - Added swoole_http_server HTTP DELETE entity supports
- Added swoole_client support for SSL/TLS tunnel encryption
- Optimized RINIT/RSHUTDOWN
- Fixed the problem of coredump when swoole_websocket_server is not set up onRequest
- Added swoole_server->getClientInfo/getClientList alias
- Fixed swoole_server->finish cannot use in BASE mode
- Added swoole_client ssl certificate supports
- Fixed swoole_http_server memory leak
1.7.19 - Added swoole_atomic module, support for atomic integer operations
- Fixed timer in the system can not recover after the resumption of the operation
- Fixed ssl_server cannot send more than 30K large packages in a slow network
- Added supports for UDP/UDP6/UNIX_DGRAM big packages(64K)
- Fixed addtimer/tick timer can't be used in BASE mode
- Added addProcess in SWOOLE_BASE mode
- Fixed SWOOLE_KEEP core dump
1.7.18 - Added onPacket event callback function
- Added PHP7 support
- Fixed swoole_http_response->header memory leak
- Added swoole_table signed integer support
- Added REUSEPORT support
- Fixed woole_client and swoole_timer memory leak
- Added swoole_server->exist function
1.7.17 - Fixed async swoole_client send data incomplete
- Removed task_dispatch_mode server configuration
- Added pipe_buffer_size server configuration
- Pipeline memory buffer default size is adjusted to 32M
- Http Server Header adjust the maximum length of 128 to 8192
- Fixed swoole_process->pop cannot use
- Fixed taskwait error in MacOS and CygWin
- Added swoole_table->exist
1.7.16 - Fixed swoole_server->addtimer and tick timer conflict
- Added server statistics items request_count and worker_request_count
- Added server connections iterator, foreach traverse server can use all the connections
- Optimize dispatch_mode = 3 model to enhance the efficiency of task assignment
- Added multipart-form http server and upload files support
- Added http server requests query_string
- Fixed invalid parameter problem task_max_request
1.7.15 - Fixed swoole_client waitall parameters failures
- Fixed swoole_table dead loop BUG
- Disable swoole_websocket_server->send method
- Added swoole_table->incr/decr methods
- Added http server gzip compression supports
- Added swoole_server open_eof_split configuration
1.7.14 - Update websocket server onOpen callback params
- Update websocket server onMessage callback params
- Added swoole_server->tick/swoole_timer_tick function
- Fixed onReceive data merge failure
- Added http server gzip compression supports
- Update http server allows sending empty body
1.7.13 - Update server session_list resized to 1M
- Update connection_info from_fd, from_port rename to server_fd, server_port
- Http server performance optimization
- WebSocket server performance optimization
- Added swoole_client->getpeername
- Added swoole_client->getsockname
- Fixed accept dead loop when server have too many connection
- Fixed sequence of onConnect/onReceive events disorder
1.7.12 - Fixed swoole_server tcp buffer error
- Fixed wrong error log
1.7.11 - Fixed udp server called connection_info wrong
- Fixed temporary files task disk space does not release
- Fixed WebSocket onOpen event callback core dump
- Fixed cannot use sendMessage in the task process
- Fixed Websocket server Sec-WebSocket-Accept handshake failed
- Fixed HttpServer in turn the KeepAlive continuous POST data coredump
- Fixed MacOS/FreeBSD error ENOBUFF occurred in a large number of concurrent
- Added HttpServer chunk transmission support
- Added PCRE detection
1.7.10 - Fixed udp server after the reload cycle of death BUG
- Fixed http server POST request segment fault error
- Added non-blocking settings for swoole_process::wait
- Fixed pecl script cannot use
- Fixed swoole_server->sendMessage to fail
- Added swoole_websocket_server
- Added swoole_server->sendto
- Optimization performance for http_server
- Optimization performance for swoole_client and swoole_event
- Added ARM platform support
1.7.9 - Added websocket protocol support
- Added swoole_process::signal
- Added swoole_server->addProcess
- Added swoole_process::name
- Added swoole_server::listen
- Added swoole_server::sendMessage and onPipeMessage event
- Added swoole_event_write
- Added swoole_process->close
- Added swoole_server user/group setting
- Added swoole_server task/finish automatic packing
1.7.8 - Fixed swoole_http_server::on no implementation parent class methods
- Fixed cannot read cookie in swoole_http_server
- Added swoole_http_server support to POST RawContent
- swoole_timer_after interface can pass a user parameter
- swoole_client->recv and onReceive zero copy
- Fixed swoole_table->set cannot be set more than 64K string
- Fixed open_length_check connection memory buffer is not reset bug
- Added dispatch_mode=4/5, dispatch data by client ip and uid
- Event callback function exception error level changed from E_WARNING to E_ERROR
1.7.7 - Added swoole_http_server
- Added swoole_server->after and swoole_timer_after
- Fixed all known issues
1.7.6 - Fixed all known issues
1.7.5 - Added swoole_client->sendfile()
- Added swoole_table
- Remove onMasterConnect/onMasterClose
- Added pipe output buffer
- TCP short connection have 50% performance improvement
1.7.4 - Task process support timer
- Repair UDP error BUG
- Add SSL-server support
- Reload is effective for task_worker.
- When the pipe is filled with poll is waiting for the write, rather than packet loss
- Increase the clang compiler support
- Repair shutdown task_worker and manager abnormal stop
1.7.3 - Fixed pipe_worker zero
- Fixed serv->connect_count wrong
- Fixed length_check dispatch error
- Optimization of large size response packet
1.7.2 - Fixed udp sendto error
- Fixed heartbeat no close connection
- Added swoole_process module
- Added swoole_server::task large package
- Added swoole_server task worker use message queue
- Added messge queue ipc move to swoole_server::set
1.7.1 - Check close fd is not timer_fd
- TCP_DEFER_ACCEPT option
- socket LINGER option
- Fixed eof_check memory error
- Added swoole_event_set
- Added swoole_client out_buffer
- Added socket linger option
- Fixed the swoole_server->close destroy out_buffer bug
- Using php_error_docref
- Fixed swoole_async_dns_lookup warning
1.7.0 - Fixed compile error.
1.6.12 - Added connection out_buffer
- Added async file read/write
- Added async dns lookup
- Added long tcp connection
- Added client timer
- Added swoole_server->sendfile
- Added signalfd usage
- Fixed some bugs
1.6.11 - Disable by default async_mysql
- Disable by default sockets
- Added event onWorkerError
- Added event onWorkerStart for task_worker
- swoole_server->task can assign worker_id
- swoole_server->set() save params to swoole_server::$setting
- swoole_client->send will check data length
- swoole_server->connection_info for udp
1.6.10 - Enabled by default async_mysql
- Add tcp heartbeat mechanism
- UDP send no require from_id
- swoole_client on::Receive and on::Close no need to call recv/close
- Add last_time and connect_time to tcp connection_info
- rebuild data_buffer
1.6.9 - use "pecl package"
1.6.8 - Fix all gcc wanning
- support pecl install
- new function swoole_server_taskwait
- remove *.lo files
1.6.7 - First version for pecl.net

Return

PRIVACY POLICY  |  CREDITS
Copyright © 2001-2018 The PHP Group
All rights reserved.
Last updated: Tue Nov 13 02:05:02 2018 UTC
Bandwidth and hardware provided by: pair Networks