Package Data | |
---|---|
Maintainer Username: | zhaohehe |
Maintainer Contact: | zhaohehedola@gmail.com (zhaohehe) |
Package Create Date: | 2017-01-13 |
Package Last Update: | 2017-01-13 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-19 03:05:17 |
Package Statistics | |
---|---|
Total Downloads: | 3,476 |
Monthly Downloads: | 114 |
Daily Downloads: | 4 |
Total Stars: | 17 |
Total Watchers: | 1 |
Total Forks: | 0 |
Total Open Issues: | 0 |
这是一个用来支持laravel的事件广播的socket服务器
首先,你必须为你的php安装swoole扩展以及redis扩展,推荐使用php7
直接用composer安装
composer require zhaohehe/laravel-echo-server
然后在app.php
中的providers数组中加入下面的一项
\EchoServer\BroadcastServerServiceProvider::class,
最后运行下面的命令,发布配置文件
php artisan vendor:publish
开启socket服务器
php artisan echo start
你可以在echo.php文件中配置服务器监听的端口,默认是:3523
你需要在.env中设置BROADCAST_DRIVER=redis
前端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="msg"></div>
</body>
<script>
var msg = document.getElementById('msg');
var wsServer = 'ws://localhost:3523';
var websocket = new WebSocket(wsServer);
websocket.onopen = function (evt) {
console.log(websocket.readyState);
var message = '{"channel": "test-channel", "event": "TestBroadcastEvent"}';
websocket.send(message);
//监听消息
websocket.onmessage = function (evt) {
msg.innerHTML += evt.data +'<br>';
};
};
// 关闭Socket....
//websocket.close()
</script>
</html>
你的event必须实现ShouldBroadcast接口,那么,当你的事件被触发的时候,前端页面会获取到实时的message
这是一个非常简陋的事件广播服务,只实现了最基本的功能,验证一下想法,我会去仔细研究下reids和laravel的广播以及swoole然后来完善它。