websocket消息支持 (#188)

* Release (#162)

* feat:  websocket server demo

* feat:  ws server demo dev

* feat:  ws server and mobile page

* feat:  手机端发送消息

* feat:  手机网页发送消息

* 添加了抽奖中和抽奖完成时的音效

* feat:  自定义设置弹幕服务器地址

* feat:  ws not done

* fix: 🐛 fix pr-185 #185

为播放音效添加控制

* feat:  server worker demo not done

* feat:  websocket server

* feat:  全局接收websocket消息并存储到indexdb中

---------

Co-authored-by: Silence@2024 <707261624@qq.com>
This commit is contained in:
LOG1997
2026-01-09 17:11:43 +08:00
committed by GitHub
parent 52d2fcd0cb
commit 3eac4e1aac
40 changed files with 3489 additions and 279 deletions

57
src/store/serverConfig.ts Normal file
View File

@@ -0,0 +1,57 @@
import type { ServerType } from '@/types/storeType'
import { defineStore } from 'pinia'
import { defaultServerHostList } from './data'
export const useServerConfig = defineStore('server', {
state() {
return {
serverConfig: {
serverList: defaultServerHostList,
currentServer: defaultServerHostList[0],
},
}
},
getters: {
// 获取服务器列表
getServerList(state) {
return state.serverConfig.serverList
},
// 获取当前服务器
getCurrentServer(state) {
return state.serverConfig.currentServer
},
},
actions: {
// 设置服务器列表地址
updateServerList(userServer: ServerType) {
this.serverConfig.serverList.map((item) => {
if (item.id === userServer.id) {
item.host = userServer.host
}
return item
})
},
// 设置当前服务器
setCurrentServer(userServer: ServerType) {
this.serverConfig.currentServer = userServer
},
// 重置所有配置
resetDefault() {
this.serverConfig = {
serverList: defaultServerHostList,
currentServer: defaultServerHostList[0],
}
},
},
persist: {
enabled: true,
strategies: [
{
// 如果要存储在localStorage中
storage: localStorage,
key: 'serverConfig',
},
],
},
})