This commit is contained in:
2023-03-10 11:26:39 +08:00
parent 363130ddd0
commit 0428a1b155
10 changed files with 270 additions and 20 deletions

View File

@@ -1,4 +1,5 @@
import axios from 'axios'
export default defineEventHandler(async event => {
// 获取任务列表的状态进度(普通用户只能看到自己的)

25
server/api/sendmessage.ts Normal file
View File

@@ -0,0 +1,25 @@
export default defineEventHandler(async (event) => {
console.log("Sendingmessage~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
//if (event.node.req.socket) {
// console.log("Creating websocket server")
// event.node.req.socket.on("upgrade", function (request, socket, head) {
// console.log("Upgrading")
// })
// event.node.req.socket.on("connection", function (socket) {
// console.log("Connection")
// socket.on("message", function (message: any) {
// console.log("MessageA", message)
// })
// })
// event.node.req.socket.on("message", function (message: any) {
// console.log("MessageB", message)
// })
// event.node.req.socket.on("close", function (message: any) {
// console.log("close", message)
// })
// event.node.req.socket.on("error", function (message: any) {
// console.log("error", message)
// })
//}
return { message:'2333' }
})

View File

@@ -0,0 +1,52 @@
import WebSocket, { WebSocketServer } from 'ws'
type Client = {
id: string
send: (message: string) => void
readyState: number
}
declare global {
var wss: WebSocketServer
var clients: Client[]
}
let wss: WebSocketServer
let clients: Client[] = []
export default defineEventHandler((event) => {
if (!global.wss) {
console.log("Creating websocket server")
wss = new WebSocketServer({ server: event.node.res.socket?.server })
wss.on("connection", function (socket) {
console.log("Client connected")
socket.send("connecte")
socket.on("message", function (message) {
wss.clients.forEach(function (client) {
console.log("Client", client)
client.send('message')
if (client == socket && client.readyState === WebSocket.OPEN) {
clients.push({
id: message.toString(),
send: (data: string) => client.send(data),
readyState: client.readyState,
})
global.clients = clients
}
})
})
socket.on("close", function () {
clients = clients.filter((client) => client.readyState !== WebSocket.CLOSED)
global.clients = clients
console.log("Client disconnected")
})
socket.on("error", function (error) {
console.log("Error", error)
})
socket.on("pong", function (data) {
console.log("Pong", data)
})
global.wss = wss
})
}
})