Я создал веб-сервер с помощью пакетных приложений Chrome. Проблема, которую я постоянно вижу, заключается в том, что chrome.socket.accept() и chrome.socket.write() не вызывают свои функции обратного вызова. Обычно он работает более-менее надежно, если частота запросов меньше 1 запроса в секунду. Если я пойду выше этого, я начну видеть ошибки или отсутствующие обратные вызовы.
Я провел аналогичные тесты с образцом приложения «веб-сервер», созданным Google (https://github.com/GoogleChrome/chrome-app-samples/tree/master/webserver). У него такая же проблема. Обычно требуется менее 100 запросов, прежде чем веб-сервер перестанет отвечать. Самый простой способ воспроизвести проблему — использовать браузер Chrome в качестве клиента и удерживать клавишу F5 в течение нескольких секунд.
Было бы желательно иметь пример приложения, демонстрирующего, как создать надежный веб-сервер с помощью chrome.socket. До сих пор я пробовал несколько разных обходных путей для мониторинга ситуации из самого приложения и перезапуска сокета, когда сокет перестает работать, но это непросто, потому что нет надежного способа проверить статус соединения или статус последней операции, когда обратный вызов не уволенный. Я пытался использовать метод getInfo(), но он всегда возвращает «connected=true» вне зависимости от ситуации.
Я видел это на Windows 7 и Chrome OS (Chromebook).