I'm trying to create a small application that will read the CPU load of computers / laptops and send a push notification to the browser of my main laptop, which will contain the user name com and the processor load. As a technology for sending notifications, I chose FCM. The code itself is ready, but I miss one detail. I need to get the device token of my laptop to which this push notification will be sent (as far as I understand, the device token is the token of the computer to which the notification is sent). But I do not know how to get this token. Most of the recommendations relate to Android, and I need to send it from computer to computer. Maybe someone can tell me a different approach to sending these notifications, or the option I attached is also a good starting point? If so, how can I get this token?
public class MetricTesting { Process p = Runtime.getRuntime().exec("typeperf \"\\238(_Total)\\6\""); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; double pr = 0; Pattern pattern = Pattern.compile("[\\d]{0,3}\\.\\d{4,}"); while ((line = br.readLine()) != null) { System.out.println(line); Matcher m = pattern.matcher(line); if (!m.find()) { continue; } line = m.group(); pr = Math.round(Double.parseDouble(line) * 10.0) / 10.0; System.out.println(pr); if (pr > 5) { PushNotificationSender.sendPushNotification("??", Double.toString(pr)); System.out.println(System.getProperty("user.name") + ", Processor loaded " + pr + " %"); } } String[] g = br.readLine().split(""); System.out.println(Arrays.toString(g)); br.close(); } } class PushNotificationSender { public final static String AUTH_KEY_FCM = "//"; public final static String API_URL_FCM = "https://fcm.googleapis.com/fcm/send"; public static String sendPushNotification(String deviceToken, String pr) throws IOException, JSONException { String result = ""; URL url = new URL(API_URL_FCM); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setUseCaches(false); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Authorization", "key=" + AUTH_KEY_FCM); conn.setRequestProperty("Content-Type", "application/json"); JSONObject json = new JSONObject(); json.put("to", deviceToken.trim()); JSONObject info = new JSONObject(); info.put("title", "CPU is overloaded"); info.put("body", System.getProperty("user.name")+"\n"+pr); json.put("notification", info); try { OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(json.toString()); wr.flush(); BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); String output; while ((output = br.readLine()) != null) { System.out.println(output); } result = "OK"; } catch (Exception e) { e.printStackTrace(); result = "BAD"; } return result; } }