tp5模拟js发送ws信息
时间: 2023-08-28 19:05:19 浏览: 44
在 ThinkPHP5 中,可以使用 Swoole 扩展来实现 WebSocket 服务。下面是一个简单的例子,演示如何在 ThinkPHP5 中使用 Swoole 扩展发送 WebSocket 消息:
1. 首先安装 Swoole 扩展:
```
pecl install swoole
```
2. 在控制器中创建一个 WebSocket 服务:
```php
use Swoole\WebSocket\Server;
class WebSocketController extends Controller
{
public function index()
{
$server = new Server('0.0.0.0', 9501);
$server->on('open', function ($server, $request) {
echo "Client {$request->fd} connected\n";
});
$server->on('message', function ($server, $frame) {
echo "Received message: {$frame->data}\n";
// 处理消息
$data = json_decode($frame->data, true);
$response = $this->handleMessage($data);
// 发送消息
$server->push($frame->fd, json_encode($response));
});
$server->on('close', function ($server, $fd) {
echo "Client {$fd} closed\n";
});
$server->start();
}
private function handleMessage($data)
{
// 处理消息
// ...
// 返回响应
return [
'status' => 'success',
'data' => $result,
];
}
}
```
3. 在 JavaScript 中发送 WebSocket 消息:
```javascript
var ws = new WebSocket('ws://localhost:9501');
ws.onopen = function () {
console.log('WebSocket connected');
};
ws.onmessage = function (event) {
var data = JSON.parse(event.data);
console.log('Received message:', data);
};
ws.onclose = function () {
console.log('WebSocket closed');
};
// 发送消息
ws.send(JSON.stringify({
type: 'hello',
message: 'Hello, WebSocket!',
}));
```
这样就可以在 ThinkPHP5 中模拟 JavaScript 发送 WebSocket 消息了。当然,这只是一个简单的例子,实际上 WebSocket 的使用会更加复杂。