Максимально примитивный пример.
На клиенте добавляешь эвент:
JavaScript:
mp.events.add("hud.update.online", online => {
browser.call("hud.update.online", online);
});
Соответственно с сервера будешь его вызывать посредством player.call и передачей туда необходимых аргументов.
В CEF импортишь следующие, если его нет:
JavaScript:
import React, { useState, useEffect } from 'react';
В начало function App() {...}, вместо своего var HUD = {...} вставляешь:
JavaScript:
const [online, setOnline] = useState(0);
useEffect(() => {
// подписываемся на событие при монтировании компонента
mp.events.add("hud.update.online", online => setOnline(online)); // стрелочная функция для наглядности
// отписываемся при размонтировании
return () => {
mp.events.remove("hud.update.online");
}
}, []);
Опять таки, нерационально подписываться таким образом на обновление онлайна.
В идеале для этого использовать менеджер состояний, например redux или mobx, откуда подтягивать значение в компонент.