Laravel 与第三方 Pusher 的客户支持聊天
Laravel customer support chat with third party Pusher
我正在尝试通过 laravel
和 Pusher
创建客户 支持图表 ,但在我的控制台中,出现了一些错误。我无法理解。
这里是控制台:
并且,
这是我在Js
文件
中的内容
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.d8649589aa930d275ffe,
cluster: process.env.ap2,
encrypted: true
});
Create Event Abstract class
namespace App\Events;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Queue\SerializesModels;
abstract class Event implements ShouldBroadcast
{
use SerializesModels;
protected $message;
protected $channels = [];
protected $event = '';
/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return $this->channels;
}
/**
* Broadcast to event
*/
public function broadcastAs()
{
return $this->event;
}
/**
* Broadcast with message
*/
public function broadcastWith()
{
return $this->message;
}
}
Now Create PusherEvent Class
namespace App\Events;
class PusherEvent extends Event
{
/**
* Create a new event instance.
* @param $message
* @return $this
*/
public function setMessage($message)
{
$this->message = $message;
return $this;
}
/**
* Set pusher channels
*/
public function setChannels($channels)
{
$this->channels = $channels;
return $this;
}
/**
* Set pusher event
*/
public function setEvent($event)
{
$this->event = $event;
return $this;
}
}
Now Broadcast from anywhere at Laravel Side like this
try {
$messageEvent = new PusherEvent();
$messageEvent->setEvent('chatMessage')
->setChannels(['customerChat']);
$params['message'] = "Hello From Laravel";
event($messageEvent->setMessage($params));
} catch (\Exception $e) {
customLog($e->getMessage());
return false;
}
调用此代码后,您可以查看推送器控制台。你会得到"Hello From Laravel"
这是一个工作代码。我在我的项目中使用过。希望对你有帮助。
For listing from js
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'd8649589aa930d275ffe',
cluster: 'ap2',
encrypted: true
});
Echo.channel('customerChat')
.listen('chatMessage', (e) => {
console.log(e.message);
});
详情https://laravel.com/docs/5.6/broadcasting#concept-overview
我正在尝试通过 laravel
和 Pusher
创建客户 支持图表 ,但在我的控制台中,出现了一些错误。我无法理解。
这里是控制台:
并且,
这是我在Js
文件
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.d8649589aa930d275ffe,
cluster: process.env.ap2,
encrypted: true
});
Create Event Abstract class
namespace App\Events;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Queue\SerializesModels;
abstract class Event implements ShouldBroadcast
{
use SerializesModels;
protected $message;
protected $channels = [];
protected $event = '';
/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return $this->channels;
}
/**
* Broadcast to event
*/
public function broadcastAs()
{
return $this->event;
}
/**
* Broadcast with message
*/
public function broadcastWith()
{
return $this->message;
}
}
Now Create PusherEvent Class
namespace App\Events;
class PusherEvent extends Event
{
/**
* Create a new event instance.
* @param $message
* @return $this
*/
public function setMessage($message)
{
$this->message = $message;
return $this;
}
/**
* Set pusher channels
*/
public function setChannels($channels)
{
$this->channels = $channels;
return $this;
}
/**
* Set pusher event
*/
public function setEvent($event)
{
$this->event = $event;
return $this;
}
}
Now Broadcast from anywhere at Laravel Side like this
try {
$messageEvent = new PusherEvent();
$messageEvent->setEvent('chatMessage')
->setChannels(['customerChat']);
$params['message'] = "Hello From Laravel";
event($messageEvent->setMessage($params));
} catch (\Exception $e) {
customLog($e->getMessage());
return false;
}
调用此代码后,您可以查看推送器控制台。你会得到"Hello From Laravel"
这是一个工作代码。我在我的项目中使用过。希望对你有帮助。
For listing from js
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'd8649589aa930d275ffe',
cluster: 'ap2',
encrypted: true
});
Echo.channel('customerChat')
.listen('chatMessage', (e) => {
console.log(e.message);
});
详情https://laravel.com/docs/5.6/broadcasting#concept-overview