Blockchain explorer for Ethereum based network and a tool for inspecting and analyzing EVM based blockchains.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
blockscout/apps/block_scout_web/assets/js/socket.js

30 lines
837 B

import {Socket} from 'phoenix'
import {locale} from './locale'
const socket = new Socket('/socket', {params: {locale: locale}})
socket.connect()
export default socket
/**
* Subscribes the client in the channel given the topic.
*
* This function will check if already exist a channel before creating one. This is useful because
* when the client is attempting to create a duplicated subscription, the server will close the
* existing subscription and create a new one.
*
* See more about it in https://hexdocs.pm/phoenix/js/#phoenix.
*
* Returns a Channel instance.
*/
export function subscribeChannel (topic) {
const channel = socket.channels.find(channel => channel.topic === topic)
if (channel) {
return channel
} else {
const channel = socket.channel(topic, {})
channel.join()
return channel
}
}