Pusher 客户端 /pusher/auth 返回错误 500(内部服务器错误)

2023-12-29

我正在开发一个快速聊天应用程序,以提高我的推送技能,并决定开始进入私人频道。我在相同的客户端代码上使用的公共频道应用程序并稍微调整了 App\Events\chatmessagesent 事件(更改了 return new Channel(...) 以返回 new PrivateChannel(...))返回一个特殊的错误。当我加载聊天页面时,即使我刚刚调整了代码以指向私人服务器,但现在在尝试发布到 Pusher/auth web.php 路由时收到错误 500。我希望我在调试方面有更多的了解,这样我就可以帮助缩小可能出现这种情况的原因,但到目前为止,我还没有像通常调试某些东西那样调试它。我将发布每个相关文件中的代码以供参考。

// Web.php

Route::post('/pusher/auth', function(){
        return true;
});

// Event File (in App\Events)
...
public function broadcastOn()
    {
        return new PrivateChannel('chatroom.' . $this->chatroomID);
    }
...

// Client-side Code

@extends('layouts.mainpage2')

@section('headincs')
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <title>Chatroom</title>
    <script>
    window.Laravel = {!! json_encode([
        'chatroom' => $returndata['chatroom']->id,
    ]) !!};
</script>
@endsection

@section('content')
    <style>
        .vh-50 {
            height: 50vh !important;
        }
    </style>
    <script src="https://js.pusher.com/5.0/pusher.min.js"></script>
    <script>

        var pusher = new Pusher('pusherkey', {
            cluster: 'us2',
            forceTLS: true, 
            authEndpoint: '/pusher/auth',
            auth: {
                headers: {
                    'X-CSRF-Token': "{{ csrf_token() }}"
                }
            }
        });

    var channel = pusher.subscribe('private-chatroom.' + window.Laravel.chatroom);
    channel.bind('chatmessagesent', function(data) {
      alert(JSON.stringify(data));
      console.log("received message");
    });

    $(document).ready(function() {
        $('#chatMessageForm').submit(function(event){
            event.preventDefault();
            $.ajax({
                type: 'POST',
                url: '/chatroom/' + window.Laravel.chatroom + '/sendmsg',
                data: $('form#chatMessageForm').serialize(),
                dataType: 'json',
            })
            $('#msgContent').val("");


            return false;
        });
    });
  </script>
    <a href="/userlanding" class="pl-3 pt-3">Back to dashboard</a>
    <div class="container my-5 border border-primary rounded">
        <h3 class="text-center pt-3">{{$returndata['chatroom']->chatroom_name}}</h3>
        <h6 class="text-center pt-2 font-weight-light">Last active at: {{$returndata['chatroom']->last_active_at}}</h6>
        <div class="container my-3 border vh-50">
            <div class="d-flex flex-column-reverse">
            @foreach($returndata['relmsgs'] as $message)
                <div class="w-50">
                    Message Data
                </div>
            @endforeach
            </div>
        </div>
        <div class="row mx-0">
            {!! Form::open(['route' => ['chatroom.sendmessage', 'chatroomID'=>$returndata['chatroom']->id], 'method' => 'POST', 'class' => 'w-100 row mx-0 justify-content-center mb-4', 'id' => 'chatMessageForm']) !!}
                @csrf
                <div class="col-md-10">
                    <textarea class="form-control w-100" name="msgContent" id="msgContent" rows="3"></textarea>
                </div>
                <div class="col-md-2">
                    {{Form::submit('Send Message', ['class' => 'btn btn-primary w-100 h-100'])}}
                </div>
            {!! Form::close() !!}
        </div>
    </div>
@endsection

// Bootstrap.js (in Resources\js)

import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
     broadcaster: 'pusher',
     key: 'pusherkey',
     cluster: 'us2',
     forceTLS: true
});

加载到页面上的 bootstrap.js 的最后一行显然是为 Echo 设置的,所以我只是将其包含在内,以防可能出现一些干扰。我尝试切换到 Echo,认为 Pusher 可能是 Laravel Echo 的更好设置,但我不断从“import Echo from 'laravel-echo'”行中收到错误,说我无法从不支持的模块导入打开,所以我切换回这种形式,因为今天早些时候我让它在公共频道上运行,并且感觉更接近通过这种方法让它运行。欢迎任何建议,谢谢。


在这里检查我到目前为止所做的事情:我该如何解决此推送错误 - 从身份验证端点返回的 JSON 无效,但状态代码为 200? https://stackoverflow.com/questions/67925862/what-can-i-do-to-resolve-this-pusher-error-json-returned-from-auth-endpoint-was。虽然我还没有完全解决这个问题,但通过遵循您对“/ Pusher / auth”的路线定义,我已经更接近了。我不再收到无效的 json 响应,现在收到 200 响应代码。我现在必须弄清楚的是新错误:“订阅 private-user.3 需要身份验证信息”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pusher 客户端 /pusher/auth 返回错误 500(内部服务器错误) 的相关文章

  • mouseover 函数在队列中多次出现

    我有这段代码 可以在鼠标悬停时使一个 div 淡出另一个 div 并在光标离开查看区域时淡出 例子 http jsfiddle net 3vgbemgu http jsfiddle net 3vgbemgu under hover func
  • 如何重新加载 jquery dropkick 对象

    我使用一个简单的选择列表和 jquery dropkick 库来使其美观 现在我想在更改相应的选择元素后更改 dropkick 内容 出现了一个新选项 但只需调用 select dropkick 不起作用 而且好像不支持 只需从头开始重建那
  • 无法将数据加载到 mvc 4 中的 jTable 中

    好的 我第一次尝试 jTable 我可以加载表 但这对我没有什么好处 因为它不会加载我的任何数据 当我调试程序时 我想要的表中的所有行都存储在我的列表中 因此我很困惑为什么当我运行应用程序时会弹出一个对话框 显示 与服务器通信时发生错误 H
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • 如何纠正这个非法字符串偏移?

    我收到此错误 警告 第 32 行 home mysite public html wp content themes evento lib php extra class php 中的非法字符串偏移 type 我意识到文件中的这部分代码是错
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • 如何处理 ASP.net MVC Ajax 加载页面上的 jQuery 事件?

    我有一个问题 我是 jQuery Mobile 领域的新手 对于 ASP Net MVC 部分我有点迷失 这是我的问题 在我的移动网站中 我想更改导航栏 我使用的更像是应用程序栏 按钮 而我位于编辑页面或主页等 因此 这些页面 编辑 显示
  • jQuery 选择 # id 以单词为前缀,计数器为后缀

    有没有办法用 jQuery 选择所有带有前缀 my 和后缀 0 9 的 id 像这样的 my 1 4 还是可以用循环来实现 div div div div div div div div div div 第一个想法 似乎效果很好 div i
  • Mysqli 更新抛出 Call to a member function bind_param() 错误[重复]

    这个问题在这里已经有答案了 我有一个 70 80 字段表单 需要插入到表中 因此我首先根据表单中的输入名称在数据库中创建了一个表 而不是手动创建一个巨大的插入语句 这是我使用的代码创建 更改表 function createTable ar
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • JQuery 验证在 IE8 中不起作用

    我使用 JQuery 验证脚本来验证 HTML 表单 这在 Firefox 中完美运行 但在 IE8 中不起作用 我认为冒号 或分号 有问题 但我无法抓住它 jQuery validator addMethod selectNone fun
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function

随机推荐

  • 可能的堆栈损坏

    参考我之前的问题GDB 未精确定位 SIGSEGV 点 https stackoverflow com q 3971091 191776 我的线程代码如下 void runner void unused do sem wait x if c
  • 如何在 aspnet vnext config.json 文件中配置实体框架拦截器?

    在网络配置文件中 我会这样做
  • 你能解释一下 onCreate 和 Bundles 吗?

    我一直在查找它 但我似乎无法将自己包裹在 onCreate 和 Bundles 中 我知道 onCreate 在程序启动时被调用 但它是如何传递 Bundles 以及它们如何相关的 任何人都可以尝试用简单的英语来表达它 因为我似乎找不到它的
  • Django 结账无法访问:找不到页面(404)

    我正在尝试使用 Django 开发一个电子商务网站 所以我现在 用户可以将商品添加到购物车 但是当我尝试继续结帐时 由于某种原因 我的结帐表单没有显示 而是显示 找不到页面 404 我确保我已经注册了我的模型并运行了迁移 问题是什么 我的观
  • django 1.10 媒体图像不显示

    我通过将以下内容添加到站点 urls py 让 django 媒体图像在现有的 django 1 7 项目中工作 urlpatterns patters url r media P
  • 适用于 VS11 开发者预览版的 MySQL 提供程序

    是否有与 Visual Studio 11 开发人员预览版集成的 MySQL 连接提供程序 我已经尝试过 MySQL 连接器 v6 4 4 但我没有看到从新连接对话框连接到 MySQL 数据库的选项 我调整了 Net Connector 版
  • 如何执行存储在 MySQL 表列中的查询?

    mysql gt select from CT CID MID REPORT QUERY 1 1 select from emp 2 2 select from student 2 rows in set 0 00 sec 我想执行查询RE
  • 在 rgl 中填充轮廓

    以下代码绘制一些点并用线连接它们 我要填写 由选择颜色和 Alpha 的线条包围的区域 我似乎不知道如何使用 rgl 做到这一点 Open plot and add axes open3d decorate3d xlim c 0 4 yli
  • 如何使用 Qt 4 创建 OpenGL 3 上下文?

    我想学习使用 OpenGL 进行图形编程 因为我刚刚开始学习它 所以我决定学习新的 OpenGL3 的做事方式 据我所知 必须为此创建一个 OpenGL 3 上下文 如果我理解正确的话 新的 OpenGL 3 2 中的核心配置文件 嗯 我考
  • 我几乎每次都将 Stateless Widget 与 BLoC 一起使用。我错了吗?

    我很难理解如何使用 Flutter 处理某些特定情况下的状态 例如 假设我需要一个页面 单击按钮即可从 API 获取数据 这样的请求可能需要时间或者可能发生任何类型的问题 因此 我可能会使用 BLoC 模式在请求经历各种 状态 时正确通知用
  • JQuery 表排序器问题

    我在使用 JQuery 时遇到了一些问题表格排序器 http tablesorter com docs 插入 如果单击列标题 它应该按此列对数据进行排序 但存在一些问题 行未正确排序 1 1 2183 236 总行数包含在排序中 关于 2
  • 将简单查询转换为蛋糕查询?

    实际上我有 1 个查询 但我无法将其转换为 CakePHP 查询格式 result select from esl userresults where esl userresults esl songID esl lyrics id and
  • 多线程可以在单处理器系统上实现吗?

    我一直遵循这样的概念 多线程只能在多处理器系统上实现 其中有多个处理器分配给每个线程 并且每个线程可以同时执行 在这种情况下没有调度 因为每个线程都有单独的资源专用于它 但我最近在某处读到我也可以在单处理器系统上执行多线程 这是对的吗 如果
  • 是否可以使固定位置的 div 响应式?

    我一直在尝试使一些 SVG 数据图表具有响应性 但似乎无法通过应用于元素的当前 CSS position fixed 来做到这一点 如果可能的话 我正在寻找一种不依赖于媒体查询的解决方案 因为我有多个元素需要应用它 如果这是不可能的 那么在
  • 使用PostgreSQL plpython3u函数返回一个表

    我想退回桌子 该函数获取一个数组 查询为 select function name array agg column name from table name 我编码如下 create type pddesctype as count fl
  • C# 无法加载文件或程序集“Microsoft.SharePoint.Library”

    我正在 64 位版本的 Windows 7 上进行开发 运行 MOSS SharePoint 这是我的开发机器 现在 当我将 Web 服务应用程序部署到测试服务器 Windows 2003 32 位 未安装 Sharepoint 时 我收到
  • iOS 中的上滑菜单

    如何创建一个像相机胶卷中那样的 向上滑动 菜单 您可以在其中选择是否要将图像作为电子邮件 彩信等发送 An UI操作表 http developer apple com library ios documentation uikit ref
  • 带有动态 SQL 语句的游标 For 循环

    有没有办法用动态 SQL 语句执行 Cursor For 循环 如果我不想声明记录 我可以这样做 仅当我声明游标时 For I in cuSelect Loop dbms output put line I NAME End Loop 我可
  • 在三个js中前后移动相机

    如何沿着相机所面对的轨迹从固定点前后移动相机 我知道有几个控制脚本可以执行此操作 但我需要执行一些自定义操作 并且我无法分解它们的代码来找出如何隔离上述行为 我见过这个答案 https stackoverflow com questions
  • Pusher 客户端 /pusher/auth 返回错误 500(内部服务器错误)

    我正在开发一个快速聊天应用程序 以提高我的推送技能 并决定开始进入私人频道 我在相同的客户端代码上使用的公共频道应用程序并稍微调整了 App Events chatmessagesent 事件 更改了 return new Channel