There are several ways that hubs can be configured to communicate with each other in HubConnect 2.0. Websockets are the most efficient method, however they have been deemed not officially supported by Hubitat staff and could go away at any time.
This is the slowest, but most reliable method for hubs to communicate. It is the only method that can connect hubs in remote locations. It's also the default, and only option for SmartThings. It's also the only officially supported option as Hubitat staff has said websockets are not an offiially supported method.
This method is technically not supported by Hubitat nor is it recommended, but it works.. and it works very well. This method is superior to http in that it is a persistent connection in which small messages are passed between hubs. This reduces load on hubs and also doesn't come with the added overhead of http transactions so messages passed over the websocket tend to arrive faster on average. Device commands are still passed via http since the Hubitat websocket is readonly (unidirectional).
This is both the fastest and most hub-friendly method of linking hubs together. It deduplicates, filters, then routes messages so that only the important events are deliverred to the hubs that expect them. It also extends the Hubitat websocket so that device commands leverage the persistent connection for faster response times than http can deliver.