with MQTT and MaxMind GeoIP2?
import mqtt from "mqtt";
export default defineComponent({
props: {
mqtt: {
type: "app",
app: "mqtt",
}
},
async run({ steps, $ }) {
const url = `${this.mqtt.$auth.protocol}://${this.mqtt.$auth.host}:${this.mqtt.$auth.port}`;
const options = {
clientId: this.mqtt.$auth.client_id ?? `pipedream-client-${Date.now()}`,
connectTimeout: 5000,
username: this.mqtt.$auth.username,
password: this.mqtt.$auth.password,
};
const client = mqtt.connect(url, options);
await new Promise((resolve) => {
client.on("connect", () => {
client.publish("pipedream/test", 'Welcome MQTT + Pipedream users! ' + new Date().toISOString(), () => {
client.end();
console.log("Message sent");
resolve();
});
});
});
return {
mqttClientIsConnected: client.connected,
};
},
})
The MaxMind GeoIP2 API enables you to identify the geographical location of your users based on their IP addresses. It offers data such as country, city, postal code, latitude and longitude, and more. On Pipedream, you can leverage this API to create powerful workflows that respond to IP-based events with geo-specific outcomes. Whether for security, personalization, or data analytics, integrating GeoIP2 within Pipedream workflows allows you to automate actions based on user locations.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
maxmind_geoip2: {
type: "app",
app: "maxmind_geoip2",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://geoip.maxmind.com/geoip/v2.1/country/me`,
headers: {
"Accept": `application/json`,
},
auth: {
username: `${this.maxmind_geoip2.$auth.account_id}`,
password: `${this.maxmind_geoip2.$auth.license_key}`,
},
})
},
})