您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman类TcpConnection的接口close
发布时间:2021-12-03 23:37:08编辑:雪饮阅读()
close
说明:
void Connection::close(mixed $data = '')
安全的关闭连接.
调用close会等待发送缓冲区的数据发送完毕后才关闭连接,并触发连接的onClose回调。
参数
$data
可选参数,要发送的数据(如果有指定协议,则会自动调用协议的encode方法打包$data数据),当数据发送完毕后关闭连接,随后会触发onClose回调
实例:
<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
/*
$worker->onConnect=function(TcpConnection $connection){
$connection->close("对不起,身份非法,连接关闭!");
};
*/
$worker->onMessage = function(TcpConnection $connection, $data)
{
//$connection->close("对不起,身份非法,连接关闭!\n");
$connection->close("对不起,身份非法,连接关闭!oo");
};
// 运行worker
Worker::runAll();
?>
这里测试在onConnect时候即便close中有data发出,客户端还是接收不到消息的,或许与不同的客户端有关,测试为chrome:
Chrome 已是最新版本
版本 96.0.4664.45(正式版本) (64 位)
然后onMessage回调中的两种写法都ok的,一般情况下区别不大,在越接近底层时候会有所区别的。
实例运行:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
-------------------------------------------- WORKERS ---------------------------------------------
proto user worker listen processes status
tcp root none websocket://0.0.0.0:8484 1 [OK]
--------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
客户端连接:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="https://www.w3school.com.cn/jquery/jquery-1.11.1.min.js"></script>
<script type="">
$(document).ready(function(){
var ws = new WebSocket("ws://47.240.19.5:8484");
ws.onopen = function(){
ws.send("佳鹏!");
}
ws.onmessage = function(e){
console.log("接收到的数据:");
console.log(e.data);
ws.send("佳鹏!");
}
ws.onclose = function(e){
console.log("连接已关闭");
console.log(e);
}
ws.onerror = function(e){
}
});
</script>
</head>
<body>
</body>
</html>
关键字词:workerman,TcpConnection,close
相关文章
- workerman类TcpConnection的maxSendBufferSize属性(缓
- workerman类TcpConnection的maxPackageSize属性(最大
- workerman类TcpConnection的defaultMaxSendBufferSize
- workerman类AsyncTcpConnection的__construct方法实现
- workerman类AsyncTcpConnection的__construct方法实现
- workerman接口listen实现内外部通信(管理后台或系统向w
- php或workerman利用posix_getpid函数获取进程id
- workerman回调onBufferFull(缓冲区溢出)
- workerman回调onBufferFull默认缓冲区大小配置
- workerman回调onClose