add ServerPushWithWebSocket -- Rework