Which Messaging Protocol to use? - websocket

I am going to integrate chat module in my application. It's a mobile application having front end in swift and backend in spring boot. So my chat module will have functionalities :)
1) There will be a one to one chat,not a group chat
2) i have to send push notification to user when user goes offline or app closed
3) i have to show online users list on user's dashboard
4) i have to store messages in database
5) User can send images,videos in chat
I know these functionalities are common in all modern mobile applications.
I am very new to messaging protocols,please suggest me a best protocol as well suited to my requirements.
Any advice will be helpful,Thanks

Take a look to the The Message Session Relay Protocol (MSRP)
You can find a comparison here.

Related

How to notify user via telegram in spring boot app&

I have spring boot app which able to notify users via their emails about some events. In mentioned case app is using user email. I need same functionality for telegram - by user nickname or phone number my app have to notify user about event.
How to implement sush simple case?
I have already worked on a very large scale project. One of the requirements was to send notifications through various channels, including Telegram Messenger.
You can choose different ways to do this, The solution I can suggest to you is to use the APIs that Telegram itself has to communicate with the core.
I guarantee you that many of your needs will be met through these APIs.
I will share the link that helped me a lot before, I hope I could have helped you.
https://core.telegram.org/api
https://core.telegram.org/api/obtaining_api_id

What is the technolpgy, does Facebook/Youtube Notification Systems use?

I am currently working on an web application, which need to implement a notification system, just like Facebook and Youtube does. (Not mobile PUSH Notification. Just to show how many notifications are in the notification couter and, when soneone expand it, show all notifications. Just as Facebook) What I need to know is, what is the following best method to use.
1.Websocket
2.SSE
3 XMPP
Our application is on budget and, we are running it on a VPS server.

Sending web push notifications from Laravel

I have a website running Laravel in the back-end, where users can create reports for other users.
When the report is created I would like to send a push notification to recipient user's desktop.
Do I need to use services like Pusher, OneSignal?
Any useful site with examples would be appreciated.
Your question
You could use Pusher, Redis/Socket.io, Pubnub, etc. Which one to use? well, this is more an opinion-based question.
These services broadcast events, then in your client apps (like your web front-end) you configure the client-side libraries of the service you choose to subscribe (to channels) and listen to those events. The documentation explains it better.
Examples/tutorials
Pusher
This is a tutorial published by the Pusher team.
Redis/Socket.io
This one
is a Laracasts series about this.
Just google.
Update
There is a Laravel-specific alternative, a package created exclusively for Laravel:
Laravel WebSockets
This is the post talking about the package and its inner working.
This is the repo.
Here you have the documentation.
If you like to show Native Desktop notification then i would suggest Web Push notification. In this way once user subscribed to push notification ,they will get real time notification and does not need to be on your website.
https://github.com/laravel-notification-channels/webpush

Is there any portlet or plugins which can help me in the implementing live customer support chat?

I need to implement live customer support chat to liferay 7.
Portal will provide capability for the end user to chat with the support users for online issue resolution, technical and non technical help. Portal support team can support the end users over chat as well over E-mail for the first tracking issue resolution. The user will be provided with a hyper link at footer of each page to start Web Chat. Once the user clicks on Web Chat the Web Chat window will be opened for communication. User can put his/her e-mail id, issue category and queries to start Web Chat. Once the Web Chat will be initiated by user, one chat window will be opened at for support user who is logged in mediation portal to provide support. If the support team is not available, then the end user will be communicated with a message that, Customer support teat will be in touch with you soon on e-mail. The user chat requests will be allocated among the support users those who are logged in mediation portal in round robin method.
There is the native chat portlet, but I really do not recommend using it for your case, your case is a bit more complex then what comes out of the box. You will be better served if a support system plugin.
I like https://www.zendesk.com/chat/
Which is pretty easy to install and customize.

Microsoft Bot Framework Client sdk

I am looking to use Microsoft Bot Framework in my application. However, I have a custom UI chat control (designed according to my requirements) where I need to hook up this bot.(instead of having pre-configured channels like slack or skype).
Is there a client sdk for web (preferably in angular) and/or mobile available for this purpose?
Take a look at DirectLine.
The Direct Line API is a simple REST API for connecting directly to a single bot. This API is intended for developers writing their own client applications, web chat controls, or mobile apps that will talk to their bot.
DirectLine is always a good option to add chat functionality in your custom UI. Otherwise you can just turn on Web Chat channel and embed iframe in your webpage. This will make your job easy with very less errors.
I have seen directline causing many issues while sending requests. Web Chat is always a better option.

Resources