laravel PresenceChannel 加入无效
laravel PresenceChannel joining not working
这是客户端js
let user_id = $('meta[name="user-id"]').attr('content');
let channel = Echo.join('user-' + user_id);
channel.here((user) => {
console.log('Here');
console.log(user);
})
.joining((user) => {
console.log('joining');
console.log(user);
})
.leaving((user) => {
console.log('leaving');
console.log(user);
});
在 laravel 回显服务器显示此错误
[11:48:15 AM] - wLO1jq5fW9p_8lOnAAAS left channel: presence-user-1 (transport close)
(node:24532) UnhandledPromiseRejectionWarning: TypeError: Cannot convert undefined or null to object
at /usr/local/lib/node_modules/laravel-echo-server/dist/channels/presence-channel.js:78:21
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:24532) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 18)
[11:48:17 AM] - Preparing authentication request to: http://asapp.buginsoft.kz
[11:48:17 AM] - Sending auth request to: http://asapp.buginsoft.kz/broadcasting/auth
[11:48:17 AM] - W3CiOs736gv0o0OwAAAT authenticated for: presence-user-1
Unable to join channel. Member data for presence channel missing
[11:48:17 AM] - W3CiOs736gv0o0OwAAAT joined channel: presence-user-1
这是我的消息发送事件
public function __construct($message,$id)
{
$this->message = $message;
$this->id = $id;
}
public function broadcastOn()
{
return new PresenceChannel('user-'.$this->id);
}
这是我的console.php
Broadcast::channel('user-{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
但是我的控制台很清晰,没有显示加入等的日志
在您的广播回调中,您return输入了一个由私人频道询问的布尔值。但是,当您验证存在通道时,如果允许该用户,您必须 return 关于该用户的数据数组。
https://laravel.com/docs/7.x/broadcasting#authorizing-presence-channels
这是客户端js
let user_id = $('meta[name="user-id"]').attr('content');
let channel = Echo.join('user-' + user_id);
channel.here((user) => {
console.log('Here');
console.log(user);
})
.joining((user) => {
console.log('joining');
console.log(user);
})
.leaving((user) => {
console.log('leaving');
console.log(user);
});
在 laravel 回显服务器显示此错误
[11:48:15 AM] - wLO1jq5fW9p_8lOnAAAS left channel: presence-user-1 (transport close)
(node:24532) UnhandledPromiseRejectionWarning: TypeError: Cannot convert undefined or null to object
at /usr/local/lib/node_modules/laravel-echo-server/dist/channels/presence-channel.js:78:21
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:24532) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 18)
[11:48:17 AM] - Preparing authentication request to: http://asapp.buginsoft.kz
[11:48:17 AM] - Sending auth request to: http://asapp.buginsoft.kz/broadcasting/auth
[11:48:17 AM] - W3CiOs736gv0o0OwAAAT authenticated for: presence-user-1
Unable to join channel. Member data for presence channel missing
[11:48:17 AM] - W3CiOs736gv0o0OwAAAT joined channel: presence-user-1
这是我的消息发送事件
public function __construct($message,$id)
{
$this->message = $message;
$this->id = $id;
}
public function broadcastOn()
{
return new PresenceChannel('user-'.$this->id);
}
这是我的console.php
Broadcast::channel('user-{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
但是我的控制台很清晰,没有显示加入等的日志
在您的广播回调中,您return输入了一个由私人频道询问的布尔值。但是,当您验证存在通道时,如果允许该用户,您必须 return 关于该用户的数据数组。
https://laravel.com/docs/7.x/broadcasting#authorizing-presence-channels