0.0.5 • Published 3 years ago
@efox/emp-lib-base v0.0.5
EMP Lib Base
目录
客户端协议
包含ME、多玩语音、寻你协议,部分功能对应app并未支持,将采用兼容处理
请求实例
- 普通请求
- 营收请求
- 多语言请求
- 阿里云Oss上传
普通请求
// example
type API_DATA<T> = {
code: number
data: T
message: string
}
const request = createGetter(`//unionvoice-act.joyyinc.com`)
const fightMonster = (data: {
sid: number
ssid?: number
zodiacId: number
}): Promise<
API_DATA<{
bizId: number
userId: number
userPropCnt: number
sid: number
ssid: number
zodiacId: number
zodiacStatus: 0 | 1 | 2 | 3
zodiacRealHp: number
resultMsg: string
awardName: string
}>
> => request(`/api/zodiac/attackZodiac`, data).catch(err => err)
营收请求
type API_DATA<T> = {
code: number
data: T
message: string
}
const request = createGetter(`//unionvoice-act.joyyinc.com`)
const fightMonster = (data: {
sid: number
ssid?: number
zodiacId: number
}): Promise<
API_DATA<{
bizId: number
userId: number
userPropCnt: number
sid: number
ssid: number
zodiacId: number
zodiacStatus: 0 | 1 | 2 | 3
zodiacRealHp: number
resultMsg: string
awardName: string
}>
> => request(`/api/zodiac/attackZodiac`, data, {turnover:true}).catch(err => err)
多语言请求
const getChristmasRankConfig = langGetter('/ME1/christmasRank/zh-hans.json')
阿里云Oss上传
需要区分业务,目前只接入me
import {uploadOss} from 'src/helpers/fetch'
const onChange = async (e: any) => {
const file: File = e.target.files[0]
const {OssClient, OssData} = await uploadOss()
try {
const {url} = await OssClient.put(OssData.fileName, file)
} catch (e) {
console.error(e)
}
}
// template
<input type='file' onChange={onChange} />
service通道连接
// init
import {SvcAssemble} from '@emp-react-lib/base/helpers/service'
import {BIZ_ID} from '@emp-react-lib/base/helpers/browser'
const ClientApi = await getAppApi(BIZ_ID)
const appid = '12345'
const {uid} = await ClientApi.getUserInfo()
const {otp} = await ClientApi.getUserTicket()
await SvcAssemble.init({
appid,
uid: uid + '',
otp,
region: 'cn',
groupType: Number('xxxxx'),
groupId: (await ClientApi.getRoomId())[0],
})
// receiver data
import {useServiceData} from '@emp-react-lib/base/helpers/service'
import {PBDecode} from '@emp-react-lib/base/helpers/utils/pb'
// hook
useServiceData(
`12345_${fnName_SvcName}_${messageName}`,
async data => {
const decodeData = PBDecode({
clzName: 'ZodiacData',
root: await import('src/proto/zodiac_broadcast.proto'),
data,
})
},
self,
)
常量
import {USER_HEAD, UNION_HEAD, UDB_APPID, SVC_GROUP_TYPE} from '@emp-react-lib/base/helpers/constant'
// 默认头像
USER_HEAD
// 工会头像
UNION_HEAD
// UDB APPID
UDB_APPID
// SVC_GROUP_TYPE
SVC_GROUP_TYPE
通用函数
//