This is the official Node.js client for the General Coordinates Network (GCN). It is a very lightweight wrapper around Kafka.js.
Run this command to install with npm:
npm install gcn-kafka
Create a client:
import { Kafka } from 'gcn-kafka'
const kafka = new Kafka({
client_id: 'fill me in',
client_secret: 'fill me in',
})
List topics:
const admin = kafka.admin()
const topics = await admin.listTopics()
console.log(topics)
Subscribe to topics and receive alerts:
const consumer = kafka.consumer()
await consumer.subscribe({
topics: [
'gcn.classic.text.FERMI_GBM_FIN_POS',
'gcn.classic.text.LVC_INITIAL',
],
})
await consumer.run({
eachMessage: async (payload) => {
const value = payload.message.value
console.log(value?.toString())
},
})
GCN has three Kafka clusters: production, testing, and an internal development deployment. Use the optional domain
parameter to select which broker to connect to.
// Production (default)
const kafka = new Kafka({
client_id: 'fill me in',
client_secret: 'fill me in',
domain: 'gcn.nasa.gov',
})
// Testing
const kafka = new Kafka({
client_id: 'fill me in',
client_secret: 'fill me in',
domain: 'test.gcn.nasa.gov',
})
// Development (internal)
const kafka = new Kafka({
client_id: 'fill me in',
client_secret: 'fill me in',
domain: 'dev.gcn.nasa.gov',
})