【问题标题】:listen to messages using pusher in Laravel在 Laravel 中使用 pusher 收听消息
【发布时间】:2020-01-01 13:31:29
【问题描述】:

当我设置了按摩时,我需要在日志中获取回显消息我可以收听通过此代码发送给我的消息

<script src="https://js.pusher.com/4.1/pusher.min.js"></script>

<script type="text/javascript">
// Enable pusher logging - don't include this in production
Pusher.logToConsole = false;

var pusher = new Pusher('34b9ea6826c359c41c3f', {
    cluster: 'eu',
    encrypted: true
});

var channel = pusher.subscribe('Messages');
channel.bind('msgSend{{$id}}msgReceive{{Auth::user()->id}}', function(data) {
    $('.adsx').append(data.html);
    $("html,body").animate({scrollTop: $('.adsx')[0].scrollHeight}, 0);
});

【问题讨论】:

  • 你真正的问题是什么?
  • 当有人给我发消息@NikolasDiakosavvas时,我需要倾听

标签: javascript laravel real-time pusher


【解决方案1】:

我认为你需要通过 artisan php artisan make:event addANameHere

创建一个 Laravel Event

之后,在 事件 中,您需要添加一个要在其上播放的频道 例如

class addANameHere implements ShouldBroadcast {

use Dispatchable, InteractsWithSockets, SerializesModels;

public $user_id;

/**
 * Create a new event instance.
 *
 * @return void
 */
public function __construct($user_id)
{
    $this->user_id = $user_id;
}

/**
 * Get the channels the event should broadcast on.
 *
 * @return \Illuminate\Broadcasting\Channel|array
 */
public function broadcastOn()
{
    return ['alert-user-'.$this->user_id];
}

然后,你可以收到这样的消息:

var pusher = new Pusher("34b9ea6826c359c41c3f", {
    cluster: 'eu',
    encrypted: false,
});

var channel = pusher.subscribe('alert-user-{{ Auth::user()->id }}');
channel.bind('App\\Events\\addANameHere', function(data) {
    // Do whatever you want here ...
});

为了触发该事件(发送消息时),您可以这样调用您的事件类:

 \Event::dispatch(new addANameHere($user_id)); 

$user_id 是您希望看到该消息的用户。

我希望我能帮上忙..

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 2018-06-08
    • 2017-11-27
    • 2017-07-22
    • 2020-04-14
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多