t-comm
Version:
专业、稳定、纯粹的工具库
39 lines (37 loc) • 2.25 kB
JavaScript
/**
* 蓝牙"碰一碰"默认常量
*/
/** 自定义服务 UUID(两端必须一致,作为"同一个小游戏"的识别标记) */
var DEFAULT_SERVICE_UUID = '0000FEED-0000-1000-8000-00805F9B34FB';
/** 自定义特征 UUID(创建外围设备时需要) */
var DEFAULT_CHARACTERISTIC_UUID = '0000BEEF-0000-1000-8000-00805F9B34FB';
/** 触发"碰一碰"的 RSSI 阈值(dBm),越接近 0 表示距离越近 */
var DEFAULT_RSSI_THRESHOLD = -75;
/** 同一台设备多次触发的去重时间(毫秒) */
var DEFAULT_COOLDOWN_MS = 5000;
/** 触发成功后保持广播的时长(毫秒),让对方也能扫到自己 */
var DEFAULT_LINGER_BEFORE_STOP_MS = 50000;
/** iOS 兜底轮询间隔(毫秒) */
var DEFAULT_POLL_INTERVAL_MS = 1500;
/** 默认隐私协议弹窗内容 */
var DEFAULT_PRIVACY_CONTENT = '本游戏需要使用【蓝牙】能力。点击【同意】即表示您已阅读并同意《用户隐私保护指引》。';
/** mutual 模式:候选 peer 的 TTL(毫秒),超过未再见即从候选池移除 */
var DEFAULT_PEER_TTL_MS = 3000;
/** mutual 模式:更新自己广播里 seenPeerId 的最小间隔(毫秒) */
var DEFAULT_ADVERTISE_UPDATE_THROTTLE_MS = 300;
/** mutual 模式:广播 payload 占位符(未看到对方时) */
var EMPTY_PEER_ID = '------';
/** mutual 模式:广播 payload 分隔符 */
var PAYLOAD_SEPARATOR = '|';
/** 临时 ID 长度(genTempId 生成 6 位) */
var TEMP_ID_LENGTH = 6;
/**
* 广播设备名前缀(iOS Peripheral 唯一能下发的自定义字段就是 localName)
* 完整格式: `BUMP_<myTempId>` 或 `BUMP_<myTempId>_<seenPeerId>`
*
* 原理:iOS CoreBluetooth 不允许 Peripheral 在广播包里塞 ServiceData,
* 只允许 localName + serviceUUIDs。所以 iOS↔iOS 必须靠 localName 传 myTempId。
* Android 同样支持 localName,所以这套方案跨平台一致。
*/
var BUMP_NAME_PREFIX = 'BUMP_';
export { BUMP_NAME_PREFIX, DEFAULT_ADVERTISE_UPDATE_THROTTLE_MS, DEFAULT_CHARACTERISTIC_UUID, DEFAULT_COOLDOWN_MS, DEFAULT_LINGER_BEFORE_STOP_MS, DEFAULT_PEER_TTL_MS, DEFAULT_POLL_INTERVAL_MS, DEFAULT_PRIVACY_CONTENT, DEFAULT_RSSI_THRESHOLD, DEFAULT_SERVICE_UUID, EMPTY_PEER_ID, PAYLOAD_SEPARATOR, TEMP_ID_LENGTH };