I've recently installed the rabbitmq mqtt websocket plugin. but I'm facing a problem when I use wildcard routing. The published messages to a wildcard topic are not delivered to the subscribers who are offline.
for an example
a subscriber is subscribed to a topic like /city/area/lane/house/user
a publisher is publishing to a topic like /city/+/+/+/user
The messages are delivered without any hustle when the subscribers are online. but when subscribers are offline the messages fail to deliver.
the QOS level I've used is 1.
can anyone help me please.
Related
I've created an application using SignalR to send notifications to machines.
Now, if the machine is online, notification is being sent. But if machine is offline, it just gets dropped and won't be sent again.
I am wondering if Azure Service Bus can be used for this purpose wherein such notifications which are dropped from offline machines can be stored in Azure Service Bus and then later on when machine comes online then it will receive this notifications.
Is something like this possible? Or any other approach which can be used for this purpose?
Yes, service bus is one of the possible solutions as Service Bus is used to decouple applications and acts as messaging broker where if receiver application is done then still the sender application can send the message to the service bus. Once your receiver application is up now, they can start receiving the message. To learn more about service bus and its features you start with this document.
If I have Slack as a desktop app running on my local machine, is there a way for me to send it a message from another locally running process?
My goal is to use the regular Slack api to ping channels, etc. But instead of using a standard integration, I could do it from another local process. Maybe Slack is listening on localhost?
If the above concept doesn't work, is the only other way to do a Slack integration, where I would send a payload to Slack servers?
note: I said "IPC" in the question, but most likely it would be HTTP/TCP to send a message from my process to the slack process on my machine.
No. You can not send your local running Slack client a "direct" message from another local running app. A Slack client is just a viewer for a Slack workspace that is running in the cloud. It does not listen to local IPC messages.
There are many ways how to send a message with the Slack API. I would suggest to start with looking at incoming webhook. This only requires you to send a POST HTTP request to a URL provided by Slack.
AWS SNS can push to http, email, SMS, lambda, "device and mobile application".
Is there a way to get it to push to a locally-running CLI application?
I can imagine that maybe it is possible to register an EC2 server as a "device" and the CLI as the "mobile application". Couldn't figure out any docs about this.
Edit: or perhaps register an EC2 server as IoT and push sns to IoT device?
No. Sort of.
Amazon SNS needs to send a message to "somewhere" that wants to receive the message. So, you could run a web server that is Internet-accessible and SNS will send the message via HTTP to that endpoint.
Mobile applications also have endpoints provided by Apple/Google/Baidu that will then forward messages to a mobile device. So, they are also listening for a message.
Bottom line: You need something that is listening for a message.
You can use ngrok for this. This answer should solve your question perfectly.
I tried debugging the kaa source code and I needed help to understand the correct flow.
My understanding:
As soon as endpoint application starts it sends KAAConnect message to the server and then server does endpoint profiling and registration.
My question:
if we send configuration, how it reaches to the endpoint, What I observe endpoint also sends KAASYNC message to the server.
Is it some kind of polling it is doing?
atleast the basic flow how server interacts with endpoint in case of notification or configuration?
Please clarify my doubts!
To configure an endpoint, the Kaa Configuration subsystem sends structured data from Kaa server to that endpoint. See Configuration management
documentation for details. For details about notification feature look at the
Notifications documentation page.
I have configured AWS SNS notification to call my HTTP endpoint. I need to open my firewall to allow AWS SNS to call it.
However, I cannot find any information about SNS HTTP(s) notification call IPs. I have caught a few IPs (54.240.194.1,54.240.194.65,54.240.194.129 ) by it's calls. But I'm not sure what's the full list of SNS HTTP notification source IPs.
I can open my firewall as 54.240.194.0/24. But no official information this is correct.
Thanks.
The list of IP addresses from which Amazon SNS notifications are sourced is provided in the Amazon SNS forums. We update this post as the IP information changes.
Please note that while notifications will usually be sourced from an IP in the same region where your topic was created, this is not guaranteed e.g., a notification sent from a topic created in US-EAST-1 may be sourced from either US-WEST-1 or EU-WEST-1. In other words, you should add all addresses on this list to your ingress rules, even if you only plan to use a single region.
In this situation SQS is probably more appropriate because you will be initiating the connection to Amazon instead of asking AWS to reach out to you. This means no changes to your firewall are required and you are not poking holes in your security...
If you need SNS notifications for other end points, you can pump SNS to SQS for this specific end point:
http://docs.aws.amazon.com/sns/latest/dg/SendMessageToSQS.html
Pretty sure you can't count on any particular IP address or range.
If you want to secure your endpoint, or at least ensure that any messages sent to it actually originate from AWS, this document may help:
...you can verify the authenticity of a notification,
subscription confirmation, or unsubscribe confirmation message sent by
Amazon SNS. Using information contained in the Amazon SNS message,
your endpoint can recreate the string to sign and the signature so
that you can verify the contents of the message by matching the
signature you recreated from the message contents with the signature
that Amazon SNS sent with the message.
http://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.verify.signature.html
The accepted answer above is out of date/expired in the Amazon forum.
This link may be more help and, hopefully, permanent, but is for ALL IP ranges, evidently.
From
https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html....
AWS IP address ranges
Here's the tool to use to filter/search that massive file
https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html#filter-json-file