登录凭证是由 用户ID、时间戳和应用ID三个部分构成的JSON字符串,具体如下:
名称 | 字段名 | 类型 |
---|---|---|
用户ID | id | string |
秒时间戳 | timestamp | int |
应用ID | appid | string |
注意,用户ID的类型是 string,如果你平台的用户ID是其它类型的话需要转为字符串的格式
用户ID在 v_socket 里只是一段字符串,程序内部根据 应用ID + 用户ID 的方式来做唯一标识,业务平台完全不需要修改自己的用户注册流程
取得生成用户凭证所需要的数据后,我们得到一段类似以下所示的字符串(注意字段顺序):
{"id": "10010","timestamp": 1676880528,"appid": "e2d043bd63569d0b06e4a63049bd3fac"}
使用【应用公钥】将这段字符串加密取得登录凭证,最终你需要将【登录凭证】返回给前端,由前端发起WebSocket连接请求。
如果前端项目可以使用JS,推荐使用 @vshen/v-socket-js-sdk 来简化你的操作
- 安装 sdk
npm install @vshen/v-socket-js-sdk --save
- 使用SDK
import VSocket from '@vshen/v-socket-js-sdk/VSocket'
// 后端部署的 v_socket 服务
const server = 'wss//127.0.0.1:30000'
// 步骤一所使用的应用ID
const appid = "e2d043bd63569d0b06e4a63049bd3fac"
// 步骤一返回的登录凭证
const password = "String"
let instance = new VSocket()
// 发起登录请求
instance.login(server, appid, password)
// 监听登录成功事件
instance.onLoginSuccess(res => {
console.log("登录成功",res)
})
// 监听消息事件
instance.onReceive(message => {
console.log('收到新消息', message)
// 你也可以发送JSON字符串,然后在这里反序列化后使用
// message = JSON.parse(message)
})
想查阅SDK更多细节可点击 这里
若你无法使用JS SDK,你可以自行实现前端登录和获取消息
首先发送登录请求所需要的数据如下:
名称 | 字段名 | 类型 |
---|---|---|
操作 | action | string |
数据 | data | object |
应用ID | data.appid | string |
登录凭证 | data.password | string |
action 字段固定传 login,登录凭证请使用步骤一服务端返回的数据
- 例如:
{"action": "login","data": {"appid": "e2d043bd63569d0b06e4a63049bd3fac","password": "String"}}
使用该字符串对发起WebSocket请求,并监听服务返回的数据,一般来讲,服务返回的数据格式如下:
名称 | 字段名 | 类型 |
---|---|---|
类型 | type | string |
消息 | message | string |
其中 message 是消息体,type 是消息类型,你需要根据消息类型来做不同的响应,消息类型可能的值如下:
类型 | 值 |
---|---|
登录成功 | LOGON |
新消息 | RECEIVED |
连接断开 | CLOSED |
连接失败 | CONNECT_FAIL |
message 只支持字符串格式,如果你有其它格式需求(比如JSON),可以先转成字符串的格式,再在客户端转为JSON