workerman实战
时间: 2023-09-24 18:03:02 浏览: 113
Workerman 是一个基于 PHP 的高性能的 socket 服务器框架,可以用于实现实时通讯、游戏服务端、物联网等应用场景。
以下是一个简单的 Workerman 实战示例:
1. 安装 Workerman:
```
composer require workerman/workerman
```
2. 创建一个简单的聊天室:
```php
<?php
use Workerman\Worker;
// 创建一个 Worker 监听 2346 端口,使用 websocket 协议通讯
$ws_worker = new Worker("websocket://0.0.0.0:2346");
// 启动 10 个进程对外提供服务
$ws_worker->count = 10;
// 当客户端连接时触发
$ws_worker->onConnect = function($connection) {
echo "New connection\n";
};
// 当客户端发送消息时触发
$ws_worker->onMessage = function($connection, $data) use ($ws_worker) {
// 向所有客户端广播消息
foreach($ws_worker->connections as $client_connection) {
$client_connection->send($data);
}
};
// 当客户端断开连接时触发
$ws_worker->onClose = function($connection) {
echo "Connection closed\n";
};
// 运行 worker
Worker::runAll();
```
3. 运行聊天室服务:
```
php chatroom.php start
```
4. 在浏览器中访问 `http://localhost:2346`,打开控制台,输入以下代码:
```javascript
var ws = new WebSocket("ws://localhost:2346");
ws.onmessage = function(event) {
console.log(event.data);
}
ws.send("Hello Workerman!");
```
5. 在控制台中输入消息,即可看到消息被广播到所有客户端。
以上是一个简单的 Workerman 实战示例,你可以根据自己的需求,灵活运用 Workerman 实现更复杂的应用。
阅读全文