如何解决Laravel + Pusher 预期参数 2 是一个数组,在实时聊天中给出的字符串
我一直在关注这个 blog post 由 pusher 在他们的官方网站上使用 laravel + pusher 构建基本的聊天应用程序。
我已经根据博客彻底遵循了每一步,我会到处搜索,因为那里没有提到一些细节。
我可以在用户之间发送消息(保存在数据库表中)但不能在用户端实时更新。
以下是我按下发送消息按钮时收到的错误消息:
事件/MessageSent.PHP
use App\User;
use App\Message;
class MessageSent implements Shouldbroadcast
{
use dispatchable,InteractsWithSockets,SerializesModels;
public $user;
public $message;
public function __construct(User $user,Message $message)
{
$this->message = $message;
$this->user = $user;
}
public function broadcastOn()
{
return new PrivateChannel('chat');
}
}
broadcast::channel('chat',function ($user) {
return Auth::check();
});
web.PHP
Auth::routes();
Route::get('/','ChatsController@index');
Route::get('messages','ChatsController@fetchMessages');
Route::post('messages','ChatsController@sendMessage');
ChatsController.PHP
use App\Events\MessageSent;
use App\Message;
use Illuminate\Http\Request;
use Auth;
class ChatsController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('chat');
}
public function fetchMessages()
{
return Message::with('user')->get();
}
public function sendMessage(Request $request)
{
$user = Auth::user();
$message = $user->messages()->create([
'message' => $request->message,]);
broadcast(new MessageSent($user,$message))->toOthers();
return ['status' => 'Message Sent!'];
}
}
我使用的是 Laravel 5.5 版,pusher 6.1。
这篇博文是为 laravel 5.4 和 pusher 2.6 编写的。
是版本差异导致了这个问题吗? 感谢您的帮助。
解决方法
解决办法是降级pusher版本。
composer require pusher/pusher-php-server ^4.1
仍会为最新版本寻找合适的答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。