跳转到内容

社交直播(Cocos)

FRVRSDK.instance.socialLive* 会向 FRVR 的社交服务器开一条 WebSocket,用于实时事件 —— 好友上线 / 状态变化、游戏邀请到达。适合做大厅里的”谁在玩?”UI 与即时游戏邀请横幅。

FRVRSDK.instance.socialLiveConnect();

登录后调用一次。连接维持整个会话生命周期;在 onDestroy 或离开使用它的场景前关闭它:

onDestroy() {
  FRVRSDK.instance.socialLiveClose();
}
import { SocialEvent } from './frvr-sdk/FRVRSDK';

FRVRSDK.instance.socialLiveOn(SocialEvent.ON_FRIEND_STATUS_UPDATED, (event) => {
  // event 包含好友的 id 和新的状态 payload
  updateFriendRow(event);
});

FRVRSDK.instance.socialLiveOn(SocialEvent.ON_GAME_INVITE, (event) => {
  // event 描述收到的邀请(from、lobbyId、payload)
  showInviteBanner(event);
});

告诉好友你正在干什么(在大厅、在第 5 关等):

FRVRSDK.instance.socialLiveUpdateStatus({ level: 1, state: 'lobby' });

你传入的对象会原样转发给已订阅好友的 ON_FRIEND_STATUS_UPDATED 处理器。

FRVRSDK.instance.socialLiveSendGameInvite(
  userId,
  lobbyId,
  { level: 1, role: 'host' },   // 任意 payload
);

接收方会收到一条 ON_GAME_INVITE 事件,带着你发的 payload。

同步获取所有人最近一次广播的状态快照:

const statuses = FRVRSDK.instance.socialLiveGetFriendsStatus();
// { friendId: { ...status }, ... }

用它在场景加载时填充好友列表,然后让 ON_FRIEND_STATUS_UPDATED 事件流持续保持同步。

socialLiveConnect()           // 打开 socket
socialLiveOn(event, handler)  // 订阅
socialLiveUpdateStatus(...)   // 广播
socialLiveSendGameInvite(...) // 1:1 邀请
socialLiveGetFriendsStatus()  // 快照
socialLiveClose()             // 关闭 socket

社交直播是给实时信号用的。一次性查询(场景加载时取一次好友列表、上一局结果等)直接调普通 社交 API 即可 —— 不需要 socket。