Протокол - websocket.
Плохая связь - Не забудьте про контроль отправки пакетов из браузера. (try-catch)
Здесь же делается авто-восстановление соединения после потери интернет-соединения.
Куда смотреть? (концептуально): примеры websocket и обработка событий в js.