mirror of
https://github.com/ArthurDanjou/artsite.git
synced 2026-01-31 04:29:31 +01:00
Test visitors
This commit is contained in:
@@ -1,17 +0,0 @@
|
|||||||
import { consola } from 'consola'
|
|
||||||
import { migrate } from 'drizzle-orm/d1/migrator'
|
|
||||||
|
|
||||||
export default defineNitroPlugin(async () => {
|
|
||||||
if (!import.meta.dev)
|
|
||||||
return
|
|
||||||
|
|
||||||
onHubReady(async () => {
|
|
||||||
await migrate(useDB(), { migrationsFolder: 'server/database/migrations' })
|
|
||||||
.then(() => {
|
|
||||||
consola.success('Database migrations done')
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
consola.error('Database migrations failed', err)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@@ -2,17 +2,13 @@ import { getQuery } from 'ufo'
|
|||||||
|
|
||||||
export default defineWebSocketHandler({
|
export default defineWebSocketHandler({
|
||||||
open(peer) {
|
open(peer) {
|
||||||
// We send the latitude and longitude query params when connecting to the server
|
|
||||||
const locations = Array.from(peer.peers.values()).map(peer => getQuery(peer.websocket.url!))
|
const locations = Array.from(peer.peers.values()).map(peer => getQuery(peer.websocket.url!))
|
||||||
// We send the (anonymous) user locations to the server
|
|
||||||
peer.subscribe('visitors')
|
peer.subscribe('visitors')
|
||||||
peer.publish('visitors', JSON.stringify(locations))
|
peer.publish('visitors', JSON.stringify(locations))
|
||||||
peer.send(JSON.stringify(locations))
|
peer.send(JSON.stringify(locations))
|
||||||
},
|
},
|
||||||
close(peer) {
|
close(peer) {
|
||||||
peer.unsubscribe('visitors')
|
peer.unsubscribe('visitors')
|
||||||
// Wait 500ms before sending the updated locations to the server
|
|
||||||
// This to avoid sending the location of the user that just left
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const locations = Array.from(peer.peers.values()).map(peer => getQuery(peer.websocket.url!))
|
const locations = Array.from(peer.peers.values()).map(peer => getQuery(peer.websocket.url!))
|
||||||
peer.publish('visitors', JSON.stringify(locations))
|
peer.publish('visitors', JSON.stringify(locations))
|
||||||
|
|||||||
Reference in New Issue
Block a user