Send XMPP message element multiple destinations (Facebook Chat API) - ios

I'm using Facebook Chat API in an iOS app. I already can send a message successfully to a Facebook friend. Now I'm wondering if a can send the same message to multiple recipients.
I don't know if it's technically possible or there's any limitation about that.
I know that I can create N messages for N users and send one by one. But depending on the number of Facebook friends that the user can select, it can take a long time until all the messages are delivered. If this is the only case, should I open one different thread for each message that is going to be sent with the XMPP stream?
I appreciate any resolution or clue for this question.

There's an XMPP extension XEP-0033: Extended Stanza Addressing which supports multicasting messages to multiple recipients. The extension has progressed to draft status, however few XMPP servers or clients support it. I doubt Facebook Chat does, and couldn't find any mention in the XMPPFramework source.
I don't think there's a better way than sending the same message to multiple recipients. Some servers may require you to pause between sending lots of identical messages, and I wouldn't be surprised if that were true of Facebook Chat.
Multi-User Chat is another way to accomplish this with XMPP, but unfortunately Facebook Chat doesn't support MUC.

Related

Using Twilio Chat on iOS, is it possible to send a small amount of custom non-message data between users?

We have an app built with Twilio Chat for iOS and everything is working very well. However, we now have a requirement to invite the other chat participant to join a video room, and we would like to send the invite signal through the Twilio Chat channel that is already established (similar in functionality to the Typing signal.)
I know Push Notifications are supported by Twilio Chat, but that seems like overkill for this use case, where a simple signal is all that's needed.
What is the easiest way to send a very small amount of non-message data between Twilio Chat channel participants?
Twilio developer evangelist here.
When you send a message with Twilio Chat you can also set an Attributes field which can contain JSON. You can then use this to signal that the message is not for printing on the page, but a service message or invite. You will then need to updated your UI to read the attributes of a message and decide whether to display it or use it to create the Video chat.
Let me know if that helps at all.

Mobile Chat application on Google App Engine and Socket.IO

I am creating a chat application with Node.JS's Socket.IO and there is a couple things I need clarification on.
I am implementing offline messaging in my app meaning that when a user opens the app he will receive all the messages he missed when they were online.
This is my approach:
1) Client opens the app and is subscribed/joins a room
2) The client sends a message to Socket.IO
3) Socket.IO inserts the message in some kind of database/datastore
4) When client tries to retrieve the messages it is pulled from the database/datastore and saved on the users phone then it is deleted from the database.
Is this a correct approach?
I was looking at online and some people suggested using task/message queues like Google App Engines Task Queue but I am not sure how this works.
Your approach sounds OK, but I wouldn't delete messages from a DB, at least not immediately after the client receives them.
From your question it seems that you're not currently saving the messages to a database.
This approach has some drawbacks; for example, the user can't view their chat history on a device that was not connected when some of the messages were sent.
There are 2 ways I can think of to do it in a more elegant manner:
Save all messages to DB. on websocket connection and reconnections, fetch all messages newer than your latest message (This approach assumes no edit functionality in your chat, as edits will not be fetched this way). The latter can be implemented using either HTTP or WebSockets.
If you don't want to store the messages in your server, then you should implement some sort of persistent cache in the device used to send the messages. This is very similar to your original solution, except that instead of storing the messages in a database, you're storing them on the user's device. this does require some logic to detect when messages are received, and when the recipient reconnects, in order to trigger sending the missing messages.
The first approach is much better for the general use case in my opinion, but it depends on your use case.

Get conversation list using Sinch API & iOS SDK

I have to develop a messaging app and I came across this Sinch messaging SDK. I had downloaded the iOS SDK and tried the Sinch Instant Messaging sample app. I was able to send messages and get messages. But I need to know:
Can I get the conversation list using Sinch SDK with latest message for each conversation to show in list?
How can I differentiate the incoming chat messages from different users. In the sample I see only one chat messages screen which populates all the messages from different users. So, do we have any property in Sinch SDK that differentiates the conversations?
Is there any possibility to create group name, group image for group chat? And how will Sinch API will possibly maintain these group chat and single chat message?
No, Think of us as a delivery mechanism for messages, not a mailbox.
Look at the senderid in the messages, that will differentiate who is sending.
You can implement that feature by SendMessageWithHeaders, but Sinch IM is not really channel discussion group, its more well suited for multirecipient messages.
you can create the group name, group image for group chat etc features more easily. Many API SDK's resources are available in an internet market. For instant communication between users.
Refer to this, you may get an idea:
https://www.quora.com/What-SDKs-APIs-are-viable-for-implementing-instant-messaging-between-clients-Android-iOS-and-web

Conversations in XMPP

I'm implementing an XMPP Chat and I was wondering if there is any XEP regarding lists of conversations (like WhatsApp). With message archiving, the clients can retrieve the message history with a given user, but if they open the application for the first time, they doesn't know which users they've previously talked to.
I use ejabberd as my server.
Unfortunately, I do not know of such a XEP. Most XMPP systems assume you will have a roster. Then, it's easy to fetch chat history between you and a particular user just by querying the Message Archive (XEP-0313) with that user's JID.
That being said, I also believe a roster-agnostic Chat-partners XEP would be nice to have.

BlackBerry: how to send messages (pin, mail, sms) to multiple subscribers automatically?

I'm planning to do an BB app. But I don't know if it is possible. I ask for your recommendation.
It will consist of two apps.
The first: the user will download it. He will be subscribed to the app, sharing his mobile number, PIN, and mail (could this be done automatically? This is, without the user typing that info and sending it)
The second: the admin will send messages of different nature (sms, mail and/or pin) to the subscribers of the first app.
Summarizing: I would like to send messages (of different kind) to many users. I looked, and, at least, in the BB API is possible to send mails to multiple users. But, how to do it with sms and pin.
Also, how would be the code logic that subscribe the users? Could be done automatically? If not, do I need a dedicated server to store the info of the users? etc.
If you have a more elegant way to achieve what I'm posting, please, let me know.
It sounds like one of your requirements is to originate the messages from a BlackBerry. This may be inefficient and costly.
The best solution to send data to multiple BlackBerry users is the Push Service which you can read about here: http://us.blackberry.com/developers/platform/pushapi.jsp

Resources