diff --git a/app/Events/MessageSent.php b/app/Events/MessageSent.php index 4d26333..5cbe5be 100644 --- a/app/Events/MessageSent.php +++ b/app/Events/MessageSent.php @@ -12,11 +12,11 @@ namespace App\Events; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Broadcasting\PresenceChannel; -use Illuminate\Contracts\Broadcasting\ShouldBroadcast; +use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; -class MessageSent implements ShouldBroadcast +class MessageSent implements ShouldBroadcastNow { use Dispatchable, InteractsWithSockets, SerializesModels; diff --git a/app/Http/Controllers/ShopController.php b/app/Http/Controllers/ShopController.php index d38857d..d1b60c3 100644 --- a/app/Http/Controllers/ShopController.php +++ b/app/Http/Controllers/ShopController.php @@ -117,8 +117,8 @@ class ShopController extends Controller : ''; $sysContent = "{$icon} 【{$user->username}】送出了一张 [{$item->name}],赠给 {$toStr}!{$msgText}"; - // 广播系统消息到公屏 - broadcast(new MessageSent( + // 广播系统消息到公屏(ShouldBroadcastNow 模式) + $sysMsgEvent = new MessageSent( roomId: $roomId, message: [ 'id' => 0, @@ -129,7 +129,8 @@ class ShopController extends Controller 'color' => '#cc6600', 'created_at' => now()->toDateTimeString(), ] - )); + ); + broadcast($sysMsgEvent); } } diff --git a/resources/views/chat/partials/toolbar.blade.php b/resources/views/chat/partials/toolbar.blade.php index 93b9ce5..7ad21ce 100644 --- a/resources/views/chat/partials/toolbar.blade.php +++ b/resources/views/chat/partials/toolbar.blade.php @@ -870,8 +870,10 @@ const recipient = document.getElementById('gift-recipient').value.trim(); const message = document.getElementById('gift-message').value.trim(); document.getElementById('gift-err').textContent = ''; + // 先将商品数据保存到局部变量,再关闭弹框(closeGiftDialog 会把 _giftItem 设为 null) + const item = _giftItem; closeGiftDialog(); - buyItem(_giftItem.id, _giftItem.name, _giftItem.price, recipient, message); + buyItem(item.id, item.name, item.price, recipient, message); }; /** 购买商品(最终执行) */