123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- const { Block } = require('./db/models')
- //const chalk = require('chalk')
- const { types } = require('@joystream/types')
- const { ApiPromise, WsProvider } = require('@polkadot/api')
- const wsLocation = [
- 'wss://localhost:9933',
- 'wss://rome-rpc-endpoint.joystream.org:9944',
- ]
- // TODO migrate lib: const { addBlock } = require('./joystream')
- module.exports = (io) => {
- const initializeSocket = async () => {
- console.debug(`[Joystream] Connecting to ${wsLocation}`)
- try {
- const provider = new WsProvider(wsLocation)
- const api = await ApiPromise.create({ provider, types })
- await api.isReady
- console.debug(`[Joystream] Connected.`)
- let status = {}
- api.derive.chain.subscribeNewHeads(
- async (h) => {}
- //(status = (await addBlock(api, h, io, status)) || status)
- )
- } catch (e) {
- return console.log(`[Joystream] Connection failed`)
- }
- }
- io.on('connection', async (socket) => {
- console.log(chalk.green(`[socket.io] Connection: ${socket.id}`))
- socket.on('get blocks', async (limit) => {
- const blocks = await Block.findAll({ limit, order: [['id', 'DESC']] })
- socket.emit('blocks', blocks)
- })
- socket.on('disconnect', async () => {
- console.log(chalk.red(`[socket.io] Disconnect: ${socket.id}`))
- })
- })
- const connectUpstream = () => {
- try {
- initializeSocket()
- } catch (e) {
- console.log(`[Joystream] upstream connection failed`, e)
- //setTimeout(connectUpstream, 1000)
- }
- }
- //connectUpstream()
- initializeSocket()
- }
|