如何解决Laravel 广播使用推送器其他人不工作
$.ajaxSetup({
headers:{
'X-Socket-Id': Echo.socketId()
}
});
我也试过
var socket_id= Echo.socketId();
var CSRF_TOKEN = $('Meta[name="csrf-token"]').attr('content');
$.ajax({
/* the route pointing to the post function */
url: '/event',headers: { 'X-Socket-Id': socket_id }
type: 'POST',/* send the csrf-token and the input to the controller */
data: {
_token: CSRF_TOKEN,message: 'a message'
},//dataType: 'JSON',/* remind that 'data' is the response of the AjaxController */
success: function (data) {
$(".writeinfo").append(data.msg);
}
});
laravel 还应该添加 x-socket-id 标头,如果没有我手动操作的话,如果我没有弄错的话。根据本网站
https://github.com/laravel/echo/blob/master/src/echo.ts 它包含这个
registerjQueryAjaxSetup(): void {
if (typeof jQuery.ajax != 'undefined') {
jQuery.ajaxPrefilter((options,originalOptions,xhr) => {
if (this.socketId()) {
xhr.setRequestHeader('X-Socket-Id',this.socketId());
}
});
}
}
也在我的广播中,我确保我使用了 ->toOthers() 它在 vue 上运行良好,在它不想工作的刀片中,它发送给频道上的每个人。我在想这是因为我使用 ajax 我需要添加一个带有套接字 ID 的标头,但我不太确定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。