Actually, duplex communication is supported by raw TCP.
WebSocket protocol is one protocol which supports duplex in application layer, you'd better learn more details from websocket.
SuperWebSocket is a .NET websocket server, so it fully supports fallback.
If WebSockets are not available in browser directly, you can use Flash/Silverlight to connect websocket server, in this case communication between client and server also over websocket.
For now, scalability support should be done by yourself.