Client needed real-time chat screen with notifications as well as a payment tracking screen on a single UI, without being be messed up or interrupting the speed. They also wanted to handle money transactions & failures.
While working on the project we were using Sockets for messaging and we had to use the same for Payment processing also. But since the sockets did not support the request headers, we had to pass normal authorization information in different ways, so we had high security risk at this point.
We build a single UI just for a chat application and integrated socket for real-time messaging and notifications. So users don’t have to refresh the page to view new messages.
Our team have created payment cards like chat message cards. They are displayed in the same way as messages are displayed on the chat screen. Users will see actions for making changes in the transaction while hovering over the card. Payment actions & methods like: Make an Offer, Accept Payment and Decline offer will be displayed as a button in the message cards. Users can click on them to see the actions in real-time.
Chat server was made faster using Node JS & Socket IO by sending on-demand data to specific users. As each user is subscribed to a different channel, he/she can receive only the messages they need. All the channels created for users will be maintained in the backend database, so the user will get updated on the data to all the tabs even if they have multiple tabs opened.
We used HTTPs to authorize new sockets and generated separate tokens for that socket. And passed it all the time when the data was sent through the sockets. So our strong middleware allows only valid & safe hits to avoid the security risks in this process.
We combined the Web Sockets & HTTP to get all the features of these two technologies to achieve the maximum security for the payment transactions and real-time data transfer without delay for the chat messages and payment updates.
This is my second project with iSQUARE continues to do amazing work for me. Definitely someone to trust and continue to work with.