This uses Java's Service Provider Interface (SPI) to abstract different WebSocket implementations. SMACK-835