Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔+;Pusher希望参数2是一个数组,字符串在实时聊天中给出_Php_Laravel_Pusher_Laravel Echo - Fatal编程技术网

Php 拉威尔+;Pusher希望参数2是一个数组,字符串在实时聊天中给出

Php 拉威尔+;Pusher希望参数2是一个数组,字符串在实时聊天中给出,php,laravel,pusher,laravel-echo,Php,Laravel,Pusher,Laravel Echo,我一直在pusher的官方网站上关注这一点,用laravel+pusher构建基本聊天应用程序 根据博客,我已经完全遵循了每一步,我会到处搜索,因为那里没有提到一些细节 我可以在用户之间发送消息(保存在DB表中),但不能在用户端实时更新 以下是我按下发送消息按钮时收到的错误消息: 下面是我编写的代码文件的片段 Events/MessageSent.php use App\User; use App\Message; class MessageSent implements ShouldBroa

我一直在pusher的官方网站上关注这一点,用laravel+pusher构建基本聊天应用程序

根据博客,我已经完全遵循了每一步,我会到处搜索,因为那里没有提到一些细节

我可以在用户之间发送消息(保存在DB表中),但不能在用户端实时更新

以下是我按下发送消息按钮时收到的错误消息:

下面是我编写的代码文件的片段

Events/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();
});
Auth::routes();
Route::get('/', 'ChatsController@index');
Route::get('messages', 'ChatsController@fetchMessages');
Route::post('messages', 'ChatsController@sendMessage');
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!'];
  }
}
Broutes/channels.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();
});
Auth::routes();
Route::get('/', 'ChatsController@index');
Route::get('messages', 'ChatsController@fetchMessages');
Route::post('messages', 'ChatsController@sendMessage');
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!'];
  }
}
web.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();
});
Auth::routes();
Route::get('/', 'ChatsController@index');
Route::get('messages', 'ChatsController@fetchMessages');
Route::post('messages', 'ChatsController@sendMessage');
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!'];
  }
}
ChatsController.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();
});
Auth::routes();
Route::get('/', 'ChatsController@index');
Route::get('messages', 'ChatsController@fetchMessages');
Route::post('messages', 'ChatsController@sendMessage');
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编写的

版本差异是否导致此问题?
感谢您的帮助。

解决方案是降级推送器版本

composer需要pusher/pusher-php服务器^4.1

仍将为最新版本寻找合适的答案