28 lines
873 B
JavaScript
28 lines
873 B
JavaScript
import { io } from 'socket.io-client'
|
|
import { socketio_port } from '../../../../sites/common_site_config.json'
|
|
import { getCachedListResource } from 'frappe-ui/src/resources/listResource'
|
|
import { getCachedResource } from 'frappe-ui/src/resources/resources'
|
|
|
|
export function initSocket() {
|
|
let host = window.location.hostname
|
|
let siteName = window.site_name
|
|
let port = window.location.port ? `:${socketio_port}` : ''
|
|
let protocol = port ? 'http' : 'https'
|
|
let url = `${protocol}://${host}${port}/${siteName}`
|
|
|
|
let socket = io(url, {
|
|
withCredentials: true,
|
|
reconnectionAttempts: 5,
|
|
})
|
|
socket.on('refetch_resource', (data) => {
|
|
if (data.cache_key) {
|
|
let resource =
|
|
getCachedResource(data.cache_key) ||
|
|
getCachedListResource(data.cache_key)
|
|
if (resource) {
|
|
resource.reload()
|
|
}
|
|
}
|
|
})
|
|
return socket
|
|
} |