2020-10-19に投稿

【Laravel+Pusher】The data content of this event exceeds the allowed maximum のエラーが出た時

https://pusher.com/docs/channels/server_api/http-api#publishing-events

↑にも書いてあるが、
The data content (POST body) of events must be smaller than 10kB.
(イベントのデータコンテンツ(POST本文)は10kB未満である必要があります。)

とのことなので、
イベントに何でもかんでもぶち込むとエラーになるっぽい。

解決策

$event = [
  "eventType" => 1,
  "id" => 1,
  "content" => [...]   // ←ここのサイズが大きかった
];
event(new PusherEvent($event));

↑これをvueで受け取って、

this.content = event.content

のようにしていたのを、

$event = [
  "eventType" => 1,
  "id" => 1,
];
event(new PusherEvent($event));

イベントタイプとデータのidのみ渡すように修正

async getContent(id) {
  // ajaxでデータ取得
},

...

ver content = await getContent(event.id);
this.content = content 

ajaxでデータを取得し、それを反映

という風に直したら解決。

もちろん仕様によってはある程度制御をしなければ、
ログインしているユーザー人数だけgetContent()が呼ばれてまた別のエラーになるので、
そこは適宜対応が必要。

ツイッターでシェア
みんなに共有、忘れないようにメモ

みみみみみ

1歳と7ヶ月くらいの赤ちゃんです。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント