|null $diff 差异数据(哪些玩法赔率变化了,可选) * @param int $emittedAtMs 发送时间戳(毫秒) */ public function __construct( public readonly int $versionId, public readonly string $versionName, public readonly ?array $diff, public readonly int $emittedAtMs, ) {} /** * 公共频道,所有在大厅的玩家都能收到。 * * @return array */ public function broadcastOn(): array { return [new Channel('lottery-hall')]; } public function broadcastAs(): string { return 'odds.update'; } /** * @return array{version_id: int, version_name: string, diff: array|null, message: string, emitted_at_ms: int} */ public function broadcastWith(): array { return [ 'version_id' => $this->versionId, 'version_name' => $this->versionName, 'diff' => $this->diff, 'message' => '赔率已更新,请重新预览注单', 'emitted_at_ms' => $this->emittedAtMs, ]; } }