我花了很多时间来解决我的这个问题,阅读文档多次,谷歌在这里和那里:SO,Laracast,Larachat等,但仍然无法让Laravel回声订阅推动者存在频道,它没有显示任何错误在控制台选项卡
公共和私人频道工作正常,用户可以订阅,用户可以监听/触发事件
注意:在创建这篇文章之前,我有一些与我的当前问题相关的搜索问题,它们都没有答案
一些和我类似的问题:
规格:
7.30。1
在资源/js/bootstrap.js
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
forceTLS: true,
authEndpoint: '/api/broadcasting/auth',
auth: {
headers: {
'Authorization': `Bearer ${localStorage['token']}`
}
}
});
在路由/api中。php
// https://stackoverflow.com/questions/55555844/authorizing-broadcasting-channel-in-an-spa
Route::post('/broadcasting/auth', function (Request $request) {
$pusher = new Pusher\Pusher(
env('PUSHER_APP_KEY'),
env('PUSHER_APP_SECRET'),
env('PUSHER_APP_ID'),
[
'cluster' => env('PUSHER_APP_CLUSTER')
]
);
// This will return JSON response: {auth:"__KEY__"}, see comment below
// https://pusher.com/docs/channels/server_api/authenticating-users
$response = $pusher->socket_auth($request->request->get('channel_name'), $request->request->get('socket_id'));
return $response;
})->middleware('auth:sanctum');
在路由/channels.php
// https://laravel.com/docs/8.x/broadcasting#authorizing-presence-channels
Broadcast::channel('whatever', function ($user) {
return [
'id' => $user->id,
'name' => $user->name
];
});
在主页中。vue
...
...
created() {
Echo.join('whatever') // DOES NOT WORK, Even in mounted() vue lifehook, and in Pusher dashboard, it doesn't show this channel name
.here((users) => {
console.table(users)
})
}
问:为什么Laravel Echo不订阅Pusher presence频道?即使在Pusher中,它也不会显示频道名称:presence which
,只有断开连接(在我刷新页面后),然后
连接
,就像什么都没有发生一样
提前谢谢
1.请确保将广播驱动程序设置为. env之后,做php工匠配置:清除BROADCAST_DRIVER=推进器
2.使你的身份更加真实。php。我喜欢这个
3.检查您的广播。php
这是我的开发配置
也许对于您来说,支持\u凭据
需要是true
5.检查您的channels.php
。我有过
请确保将广播驱动程序设置为env之后,做php artisan config: Clear
使用窗口。Echo.channel加入通道。
刚开始玩推送通知,我设法处理了所有的订阅过程,我正在数据库中保存endpoint和密钥。我的问题是,如果有的话,我应该遵循什么策略来删除数据库中的旧字幕详细信息?。所以,如果有人允许通知,他们撤销了权限,我怎么知道是谁从数据库中删除了详细信息?。因为如果用户取消订阅,我只会从pushManager获得空订阅。
在使用私人频道时,我无法让echo和pusher正常工作,在谷歌上搜索了两天,找到了nada。 似乎正在发生的是某种身份验证问题(我使用Laravel基本身份验证),因为我可以订阅公共频道 路线/频道。php bootstrap.js default.blade.php(主要布局) 控制台上打印的内容是: 这是一个非常普通的错误,然后为了调试的目的,我试图使用Pusher(而不是laravel e
我正在尝试在Windows Phone8.1上运行parse.com推送通知(来自本教程)。 看来初始化起作用了: 但当我尝试订阅广播频道时,会引发以下异常: 通知平台无法连接云通知服务。(HRESULT异常:0x803E011B) 我还通过将包安全标识符和客户端机密添加到parse.com Windows推送凭据设置(遵循本教程)来验证Windows Store应用程序。但这并不能解决问题。 关
我已经设置了AWS SNS设置与一个主题说'a'。我正在使用Http订阅这个SNS主题(尝试了手动使用AWS控制台联机和使用Java代码)。在这两种情况下,我得到的都是“待确认”。但是,SNS不向提供的URL发送初始“SubscriptionConfironment”。 请注意,我的endpoint已准备好接收http POST通知。当我从我的身边手动发布一个帖子时,我会看到我的servlet正在
我正在尝试建立一个基本的SNS订阅,但它看起来像AWS从来没有发送确认,无论是通过控制台或使用SDK。 我已使用AWS控制台设置了一个主题 我已经使用AWS控制台和ruby SDK向ngrok隧道URL和公共web服务器URL添加了HTTP订阅 我允许每个人通过编辑AWS控制台中的主题策略订阅主题 通过跟踪本地主机和公共web服务器上的日志,我可以看到没有任何请求被发送到endpoint。 我在这
通讯方式: 通讯采用HTTP(S)协议,POST方式发生json格式的报文 json格式请求: Content-Type:application/json;charset=utf-8 json格式返回: Content-Type:application/json;charset=utf-8 返回响应说明: 商户处理后同步返回给果盘参数:{"status":1,"info":"返回信息"} json