Important
You are browsing documentation for version 5.1 of OroCommerce, supported until March 2026. Read the documentation for version 6.0 (the latest LTS version) to get up-to-date information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
Publish Messages to Existing Topics
Publish Messages from Backend
To publish and read messages from WebSocket connections topics on the backend side of your Oro application, OroSyncBundle provides a WebSocket oro_sync.websocket_client client which is based on the Gos WebSocketClient component Gos\Component\WebSocketClient\Wamp\Client.
WebSocket client uses authentication tickets mechanism, so you should not worry about authentication on the backend side.
Note
WebSocket client oro_sync.websocket_client uses the anonymous authentication tickets, so when you connect to WebSocket server, it treats you as an anonymous user.
You can publish messages to channels using the publish() method of the oro_sync.websocket_client, e.g.,:
$websocketClient = $this->get('oro_sync.websocket_client');
$websocketClient->publish('oro/custom-channel', ['foo' => 'bar']);
It is strongly recommended that you use the oro_sync.client.connection_checker connection checker before trying to publish or connect to websocket server, e.g.,:
$websocketConnectionChecker = $this->get('oro_sync.client.connection_checker');
if ($websocketConnectionChecker->checkConnection()) {
$websocketClient = $this->get('oro_sync.websocket_client');
$websocketClient->publish('oro/custom-channel', ['foo' => 'bar']);
}
Publish Messages from Frontend
So far, there is no options to publish messages to websocket topics from the frontend side.
List All Declared Topics
All declared topics for WebSocket connections in your application (that you can subscribe and publish messages to) are declared in the websocket_routing.yml files in the Resources/config/oro/ folders in application bundles. You can search all these files and look into them to find all declared topics.
Note
For more details on how to declare topics, see the Create Your Topic and Handler for Publishing and Subscribing topic.