Я использую org.java_websocket.WebSocket
для создания сервера Websocket на своем устройстве Android. У меня к нему подключены клиенты на рабочем столе.
Я хочу, когда Wi-Fi недоступен, выключить сервер и уведомить клиентов об отключении. Что происходит, когда у меня есть широковещательный приемник, как показано ниже, он выключает сервер, но клиенты не осознают этого в течение очень долгого времени. Есть ли этому повод?
public void onReceive(Context context, Intent intent) {
ConnectivityManager conMngr = (ConnectivityManager)context.getSystemService(context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = conMngr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = conMngr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
// Perform operations here to shut down web socket server
}
Обычно, когда Wi-Fi недоступен, я хочу иметь возможность выключить сервер и уведомить клиентов. Почему, когда я делаю conn.close()
для каждого подключения, я не получаю уведомление на настольном клиенте?
Кроме того, одним из моих клиентов является клиент для Mac, который использует Starscream
(https://github.com/daltoniam/Starscream а>). Не уверен, что мне следует знать что-нибудь об этом.