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。