I have a ReactJS application communicating with a PHP Symfony back-end. This back-end uses PHP websockets with the Ratchet lib. Communication is well established and React components are able to update based on websocket publications.
Now the use case: I would like to create a search page to display search results of a particular entity that holds reference of a set of users. This page should do the following:
On page mount, display the search results depending on default criteria and for every entity show the attached users;
On criteria update (list of settings in dropdowns), refresh the search results;
I could do that with simple HTTP calls on criteria updates, but here's the additional requirement:
When an entity currently displayed on the search results is updated (for instance, another user joins that entity), the current search results should also be updated on the fly and display the list of attached users.
Seems like a good candidate for websockets. However, I don't know how to design it. What exactly does the client need to subscribe to, and how can I broadcast entity updates only to relevant clients (meaning clients who currently listen to search criteria that match the entity properties)? On the back-end side I can easily hold a list of clients connected to the websocket, but how should I keep track of the fine-grained criteria they listen to?
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.
About the technologies asked in this question
PHP (from the English Hypertext Preprocessor - hypertext preprocessor) is a scripting programming language for developing web applications. Supported by most hosting providers, it is one of the most popular tools for creating dynamic websites.
The PHP scripting language has gained wide popularity due to its processing speed, simplicity, cross-platform, functionality and distribution of source codes under its own license. https://www.php.net/
Symfony compares favorably with other PHP frameworks in terms of reliability and maturity. This framework appeared a long time ago, in 2005, that is, it has existed much longer than most of the other tools we are considering. It is popular for its web standards compliance and PHP design patterns. https://symfony.com/
Welcome to programmierfrage.com
programmierfrage.com is a question and answer site for professional web developers, programming enthusiasts and website builders. Site created and operated by the community. Together with you, we create a free library of detailed answers to any question on programming, web development, website creation and website administration.
Get answers to specific questions
Ask about the real problem you are facing. Describe in detail what you are doing and what you want to achieve.
Help Others Solve Their Issues
Our goal is to create a strong community in which everyone will support each other. If you find a question and know the answer to it, help others with your knowledge.