laravel - Laravel 广播/WebSockets:仅连接已登录的用户
问题描述
我设置了Laravel WebSockets。我的站点只为登录的用户提供实时/WebSockets 功能。因此也不需要将访客连接到我的 WebSockets 服务器。如何阻止访客连接?
解决方案
我建议你使用 SocketIO、Laravel Echo 和 Laravel Echo Server。
获取用户访问令牌,将其存储在 cookie 或 Web 存储(localStorage 或 sessionStorage)中,并在实例化 Laravel 回显时注入它:
let Echo = require('laravel-echo')
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':3434'
auth: {
headers: {
Authorization: 'Bearer ' + AUTH_TOKEN,
},
},
});
以下是满足您需求的链接:
https://laravel.com/docs/5.8/broadcasting#driver-prerequisites https://github.com/tlaverdure/laravel-echo-server
推荐阅读
- javascript - 如何映射用 lodash 分组的数据
- android - 修改自定义 ROM 的 TetheringConfiguration LEGACY_DHCP_DEFAULT_RANGE
- wpf - AvalonDock:动态改变 LayoutAnchorablePane 的 CanClose 属性
- assembly - 汇编程序数据段中的未定义符号
- c# - GStreamer C# 服务器
- c# - WebView2 - NavigateToString 不呈现图像
- plot - 如何在 Julia 中分组绘制多个系列?
- php - 特定国家/地区的 WooCommerce 自定义本地化地址格式
- mysql - Sidekiq 没有看到数据库表的变化
- swift - 如何快速解开可选字典?