Я смотрю на чей-то код (не контактный), и они настроили клиента websocket, который общается с сервером и запускает некоторый код C ++. Это для нового Chrome PPAPI. Я могу передать переменные от клиента к серверу, но я не уверен, как передать их на сторону C ++, чтобы изменить то, что происходит в коде?
Поэтому, если клиент передает 1, код C ++ делает одно, а если 2 — другое. Я просто не вижу, как это происходит.
JavaScript, который запускает код C ++:
function onStartTest(e)
{
console.log('Start Test');
var hostname = document.getElementById('hostname').value;
var message = 'start:'+hostname;
common.logMessage(message);
common.naclModule.postMessage(message);
e.preventDefault();
return false;
}
Я посмотрел на несколько примеров безрезультатно.
Все асинхронные сообщения из JavaScript обрабатываются в функции HandleMessage, определенной в вашем pp :: Instance:
class MyInstance : public pp::Instance {
...
virtual void HandleMessage(const pp::Var& message) {
...
}
};
В вашем примере вы отправляете строковое значение. Чтобы извлечь его, вы можете использовать метод pp :: Var :: AsString:
virtual void HandleMessage(const pp::Var& message) {
if (message.is_string()) {
std::string str_message = message.AsString();
...
}
}
Если вы просто хотите передать цифры, вы можете сделать это тоже:
virtual void HandleMessage(const pp::Var& message) {
if (message.is_int()) {
int32_t int_message = message.AsInt();
switch (int_message) {
case 1: ...
case 2: ...
}
}
}
Посмотрите на документация здесь для получения дополнительной информации. Вы можете отправлять ArrayBuffers и даже произвольные объекты.