Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
basic-uniapp-v3
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-uniapp-v3
Commits
876dc993
提交
876dc993
authored
4月 18, 2024
作者:
方治民
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 新增 Stomp.connect token 有效性校验以及回调函数配置,添加 ping 消息示例
上级
59b6993b
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
20 行增加
和
12 行删除
+20
-12
index.vue
src/pages/index/index.vue
+3
-1
axiosTransform.ts
src/utils/http/axios/axiosTransform.ts
+1
-0
index.ts
src/utils/http/axios/index.ts
+3
-1
index.ts
src/utils/stomp/index.ts
+13
-10
没有找到文件。
src/pages/index/index.vue
浏览文件 @
876dc993
...
...
@@ -28,7 +28,9 @@
})
// test WebSocket(STOMP)
Stomp
.
connect
()
Stomp
.
connect
(()
=>
{
Stomp
.
send
(
'/app/ping'
,
'ping'
)
})
})
function
surprise
()
{
...
...
src/utils/http/axios/axiosTransform.ts
浏览文件 @
876dc993
...
...
@@ -6,6 +6,7 @@ import type { RequestOptions, Result } from '/#/axios'
export
interface
CreateAxiosOptions
extends
AxiosRequestConfig
{
authenticationScheme
?:
string
authenticationHeader
?:
string
transform
?:
AxiosTransform
requestOptions
?:
RequestOptions
}
...
...
src/utils/http/axios/index.ts
浏览文件 @
876dc993
...
...
@@ -157,7 +157,7 @@ const transform: AxiosTransform = {
const
token
=
userStore
.
getToken
if
(
token
&&
(
config
as
Recordable
)?.
requestOptions
?.
withToken
!==
false
)
{
// jwt token
;(
config
as
Recordable
).
headers
.
Authorization
=
options
.
authenticationScheme
;(
config
as
Recordable
).
headers
[
options
.
authenticationHeader
]
=
options
.
authenticationScheme
?
`
${
options
.
authenticationScheme
}
${
token
}
`
:
token
}
...
...
@@ -223,6 +223,8 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) {
// authentication schemes,e.g: Bearer
// authenticationScheme: 'Bearer',
authenticationScheme
:
''
,
// authenticationHeader: 'Authorization',
authenticationHeader
:
'App-Token'
,
timeout
:
10
*
1000
,
// 基础接口地址
// baseURL: globSetting.apiUrl,
...
...
src/utils/stomp/index.ts
浏览文件 @
876dc993
...
...
@@ -76,18 +76,18 @@ class StompInstance {
/**
* 创建连接
*/
connect
(
)
{
async
connect
(
cb
?:
()
=>
void
)
{
// 如已存在连接则不创建
if
(
this
.
client
&&
this
.
client
.
connected
)
{
return
}
// 检查登录是否有效
const
available
=
await
API
.
auth
.
valid
.
request
()
// 从缓存中获取token
const
useStore
=
useUserStoreWithOut
()
const
token
=
useStore
.
getToken
const
options
=
token
?
{
token
}
:
{}
// TODO: 检查 Token 是否有效
const
options
=
token
&&
available
?
{
token
}
:
{}
// 创建 Stomp 实例
this
.
client
=
Stomp
.
client
(
this
.
url
)
as
Client
...
...
@@ -129,14 +129,17 @@ class StompInstance {
})
// 发送登录消息
if
(
token
)
{
this
.
send
(
'/app/login'
,
{
token
}
)
if
(
token
&&
available
)
{
this
.
send
(
'/app/login'
,
token
)
}
// 连接成功后触发回调
cb
?.()
},
(
_
)
=>
{
// 重连
this
.
reconnectId
=
setTimeout
(()
=>
{
this
.
reconnect
()
this
.
reconnectId
=
setTimeout
(
async
()
=>
{
await
this
.
reconnect
()
},
this
.
reconnectInterval
)
},
)
...
...
@@ -145,7 +148,7 @@ class StompInstance {
/**
* 重新连接
*/
reconnect
()
{
async
reconnect
()
{
// 停止重连事件
if
(
this
.
reconnectId
)
{
clearTimeout
(
this
.
reconnectId
)
...
...
@@ -163,7 +166,7 @@ class StompInstance {
})
// 连接
this
.
connect
()
await
this
.
connect
()
}
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论