Quickblox chat data replication - quickblox

We are going to build a mobile app that will simplify a communications between our customers and our workers. Quickblox seems to be a good chose for us but we have a question:
We would like to save all text messages that are sent between customers and workers in our database. What is the best way to implement it? Is it possible to automatically add a server bot to every conversation? Is it possible to poll a Quickblox and request all conversations/messages of all users for some date?

We have a Kafka http://kafka.apache.org integration with our Chat - each message also goes to a Kafka queue, so you can connect to Kafka and consume all messages on your side and save them to your DB for example.
This feature is available starting from Enterprise plan http://quickblox.com/plans/

Related

Notifications for inactive users

I’m implementing a solution that will notify users in a scenario very similar to a chat.
I’ll be using SignalR and Azure Notifications Hub for the job.
There are two scenarios that I need to address:
Notifying users that are currently connected and using my app - either web or mobile
Notifying users who are NOT currently using the app
I think SignalR will work just fine for the first scenario which is fairly easy.
My question is handling the second scenario which will require Azure Notifications Hub.
In a typical chat app, though it’s not real-time, there’s little delay before an inactive user receives a notification for a new message he receives.
How do I “trigger” a process that will send a notification through Azure Notifications Hub?
I can think of two ways to handle this:
Figure out a way to keep a list of users who currently have an active connection to my app. These users can be notified through SignalR. So after each new message, I could trigger a notification process that will use Azure Notifications Hub for users who are NOT in the active users list i.e. those who are NOT actively connected to my app.
Another approach would be to assume no one is connected. I could create an Azure Functions app that runs every minute to check on messages that are NOT opened. It would then compile a list of users who need to be notified and call Azure Notifications Hub process to notify them.
I don’t want to reinvent the wheel and want to tap into the experience of those who’ve already implemented a solution like this.
I’m currently leaning towards the second approach. I’d appreciate your suggestions, especially on approaches that I haven’t thought of. Thanks!

Firebase Cloud Messaging sending messages one by one

I am developing an app where I want to send notifications to multiple users from my backend server. These notifications will contain 4 different contents, three of them will go to 3 different users, but the forth one will go to more than 1000 users, the frequency of theses messages will be 3 to 7 times a week. Is it ok to send this amount of messages one by one using the Cloud Messaging api? Or should I group the messages before sending?
I thought about creating a topic in the Cloud Messaging, and subscribe the users to it and then send a message, but I don't if it is correct to keep subscribing/unsubscribing users just to send one message.
NOTE: I've never used any push notifications service before.
The Firebase Cloud Messaging infrastructure delivers billions of messages per day. The volume you're describing sounds well within reason for it.
Without knowing more about the use-case it's hard to say whether using a topic would be a better approach, so I recommend reading the documentation on topic messages to get a better understanding for it.

Is Firebase Cloud Messaging suitable for messaging apps?

We're writing an app like LINE, and need notification service for each single message in a chat group when app is in background.
We try to use Firebase Cloud Messaging for this feature, but I can't see a reasonable implementation.
Topic subscribing is too slow for "create a topic for each chat group" since it takes hours to create one. Device group messaging is designed for devices owned by a single user. Using sending to a single device feature for each receiver and each message does not seem to be practical since the server loading is too heavy.
Is there a good way to use FCM making such app, or do I need to find another service? Thanks.

How to push something to user in a rest API?

We already have a system in place that uses Restful APIs in order to send let's say SMS. All of our clients are using our server to send their requests to Rest API so we drop connections except our server IP to handle authentication.
Now policy has been changed. We want to expose our APIs to the outside world. We now want to be able to push to user under specific circumstances. Let's say that I want to send a delivery report to the user when SMS has been delivered. Or when something has been scheduled for a specific time, when that time arrives user get notified.
How to handle these notifs? Has anyone used the same or similar approach?
Assuming you can reach your clients back via HTTP. The model to do this is to use callbacks. When someone posts a scheduled job on your server, they should also post a callback URI where your server can notify when the job is complete.
Sample below:
https://schedulingSevrer.com/runSchedule?callback=http://clientserver.com/reportStatusHere
So when the job is done your callback will be like
http://clientserver.com/reportStatusHere?jobId=12345&status=complete
Or if your clients are mobile apps on Andorid you can use the Google Push notifications.

IOS implementation of simple messaging system (client/server) between clients

i've been looking around to find a simple library or a client/server sample code for implementing a messaging system between users of my IOS clients app and a REST server. I would need that each user has an incoming and sent messages view. This view would display the conversations grouped by user. For example, using a table view where each cell represent a thread between the 2 distinct users, selecting a user's conversation it would push a new view that would display all the messages between the two users.
I have to say that i didn't found much, this is a mix of libraries and front ends:
an XMPP objective-c library: https://github.com/robbiehanson/XMPPFramework, but i don't really want an IM behavior
Acani chat, https://github.com/acani/AcaniChat seems promising but waiting for the acani chat server, i could use the front end
another chat https://github.com/honcheng/iOS-nodechat
MailCore, an IMAP api for objective-c: https://github.com/mronge/mailcore . i would need to relay on a mail server, create emails for each user and ... too much!
too bad there isn't any iMessage API
dont want to send a SMS or an email
push notification it's not a must to start
maybe coding a simple REST service for publishing and retrieving messages to and from a user would be the best approach? i'm i missing something?
thanks!!