奇怪的梦

太过美好的梦,以至于不愿意醒来……

laravel echo 设置

laravel echo用于提供socket服务,现代网络服务必备。

于是使用laravel-echo-server

注意laravel-echo-server是兼容pusher的。

所以直接安装pusher包 + 设置config/broadcasting.php就可以快速上手。

网络上没人将详细的设置方法写出来不知道是为什么。

需要的包

1
2
composer require pusher/pusher-php-server
npm install --save laravel-echo socket.io-client

设置

.env

1
2
3
BROADCAST_DRIVER=pusher
WEBSOCKET_APPID=your_ID
WEBSOCKET_KEY=your_key

config/broadcasting.php

1
2
3
4
5
6
7
8
9
10
11
'pusher' => [
'driver' => 'pusher',
'key' => env('WEBSOCKET_KEY'),
'app_id' => env('WEBSOCKET_APPID'),
'secret' => null,
'options' => [
'host' => 'localhost',
'port' => 6001,
'scheme' => 'http'
],
],

启动echo-server

laravel-echo-server

官方写的非常清楚了。

注意:非本地使用的情况下建议开启https

1
2
3
laravel-echo-server init
laravel-echo-server client:add APP_ID
laravel-echo-server start

到这里,laravel有可以使用php向频道中推送信息了。

vue前端设置

bootstrap.js中进行设置

注意地址的对应。如果需要laravel-echo-server完全可以拆分为独立服务器。也可以使用docker包。

1
2
3
4
5
6
7
8
9
10
import Echo from "laravel-echo"

window.io = require('socket.io-client');

window.Echo = new Echo({
broadcaster: 'socket.io',
host: 'http://localhost:6001',
key: 'your_key',
// forceTLS: true
});

使用echo

laravel

新建一个事件,laravel中的推送要使用的到队列。

类要implements ShouldBroadcast

__construct的消息为要推送信息。

broadcastOn()用来指定频道。

broadcastAs()用来指定频道名称。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

namespace KThree\Test\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class TestWebSocket implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;

/**
* Create a new event instance.
*
* @return void
*/
public $message;

public function __construct($message)
{
$this->message = $message;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
// return new PrivateChannel('test');
return ['your_channel'];
}

public function broadcastAs()
{
return 'your_broadcast_name';
}
}

vue组件中

注意listen名字前的.

1
2
3
4
var channel = Echo.channel('your_channel');
channel.listen('.your_broadcast_name', function(data) {
alert(JSON.stringify(data));
});


gantt
   dateFormat  YYYY-MM-DD-HH
   section 2019-12-13
   整理  : a1, 2019-12-13-10 , 2h
   早课 :  crit , after a1 , 2h
   程序 :     a2 , after a1 , 4h
   健身环 :   a3 , after a2 , 3h
   晚课 :  crit  , 2019-12-13-19  , 2h
   工作     :  a4 , after a3 , 4h
   休息 : a5 , after a4 , 1h
工作2     : a6 , after a5 , 3h
   整理工作记录 : 2019-12-14-03 , 1h

重新分配服务

重新分配服务,分割功能,创建新的功能包。

laravel horizon 使用vue 对UI进行构建,使文件在不导入的情况下可以使用

方法可以学习,不过无法使用 2FA 验证 与 用户登录。除非使用vuex

测试 mermaid

mermaid 文档


graph LR
A --> |test| B



gantt
dateFormat  YYYY-MM-DD-HH
section 2019-12-12
整理文档      : done, a1, 2019-12-12-12 , 4h
健身环 :active, a2 , 2019-12-12-16 , 3h
晚课 :crit , a3 , after a2  , 2h
建立对应包     : 2019-12-12-19 , 6h
心理测量者3 : a4 , 2019-12-13-01 , 2h
整理工作记录 : 2019-12-13-03 , 1h

健身环真好玩

效果还是有的,时间长了效果更明显。

switch 入手

没错因为健身环大冒险才入手……

感觉到这几个月体力下降的超明显,也不知道是怎么了

其他

天朝的基础教育虽好

却无法启发天才

老师讲的东西他们自己都不懂

还要教人也是……

简单的就算了

有点难度的就是忽悠人了

积分不讲原理,只知道背公式……

之后的30年是一个重大的变革期

各种意义都是,不过与天朝无关。

就算勉强有关系也要多年之后了……

再一次,在路口走错了。

这次的代价比上次要大的多的多……

日常是无聊的

没有什么要说的

证明还活着~

域名快到期了~

并不想换

略微心烦

passport scope 的作用域

使用 client

使用middleware('client')时,token请求的grant_type应为grant_type

当使用middleware('client:admin,user')这种样式时,检查的是全部列出的scope

使用 scope

可以用于用户请求,列出的scope中有任意对应就可以访问。

使用 scopes

同样用于用户请求,列出的scope中全部对应就可以访问。

genealabs/laravel-model-caching

laravel 5.8 中使用^0.6

laravel 6.3 中使用^0.7.1

注意包要对应,不然升级时会出错。

wow 怀旧

谁愿意玩谁玩,恶心死了。

生活够难得了,还要给自己找不快,也是够了

wow的人口素质要低于ff14,个人感受。

0%