// Nakama SDK 小程序适配器 // 将 uni-app 的 connectSocket 和 Storage 适配到 Web 标准接口 export const WebSocketAdapter = { build: function (url) { const socketTask = uni.connectSocket({ url: url, complete: () => { } }); const webSocket = { url: url, readyState: 0, // CONNECTING onopen: null, onclose: null, onerror: null, onmessage: null, send: (data) => { socketTask.send({ data: data }); }, close: () => { socketTask.close(); } }; socketTask.onOpen(() => { webSocket.readyState = 1; // OPEN if (webSocket.onopen) { webSocket.onopen({ type: 'open' }); } }); socketTask.onClose((res) => { webSocket.readyState = 3; // CLOSED if (webSocket.onclose) { webSocket.onclose({ code: res.code, reason: res.reason, wasClean: true }); } }); socketTask.onError((err) => { if (webSocket.onerror) { webSocket.onerror({ error: err, message: err.errMsg }); } }); socketTask.onMessage((res) => { if (webSocket.onmessage) { webSocket.onmessage({ data: res.data }); } }); return webSocket; } }; export const localStorageAdapter = { getItem: (key) => { return uni.getStorageSync(key); }, setItem: (key, value) => { uni.setStorageSync(key, value); }, removeItem: (key) => { uni.removeStorageSync(key); }, clear: () => { uni.clearStorageSync(); } };