From 2f142eb0887e2ff6315171b6a66fa3b33c711ce1 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Tue, 17 Nov 2015 13:33:30 -0800 Subject: [PATCH] add a receiver example --- examples/example/messagesReceiverExample.js | 22 ++++++++++++++++++++ libraries/script-engine/src/ScriptEngine.cpp | 5 +---- 2 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 examples/example/messagesReceiverExample.js diff --git a/examples/example/messagesReceiverExample.js b/examples/example/messagesReceiverExample.js new file mode 100644 index 0000000000..31020a4c8a --- /dev/null +++ b/examples/example/messagesReceiverExample.js @@ -0,0 +1,22 @@ +var totalTime = 0; +var subscribed = false; +var WAIT_FOR_SUBSCRIPTION_TIME = 10; +function myUpdate(deltaTime) { + var channel = "example"; + totalTime += deltaTime; + + if (totalTime > WAIT_FOR_SUBSCRIPTION_TIME && !subscribed) { + + print("---- subscribing ----"); + Messages.subscribe(channel); + subscribed = true; + Script.update.disconnect(myUpdate); + } +} + +Script.update.connect(myUpdate); + +Messages.messageReceived.connect(function (channel, message) { + print("message received on channel:" + channel + ", message:" + message); +}); + diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 611be863c2..c17b091643 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -367,6 +367,7 @@ void ScriptEngine::init() { registerGlobalObject("Vec3", &_vec3Library); registerGlobalObject("Uuid", &_uuidLibrary); registerGlobalObject("AnimationCache", DependencyManager::get().data()); + registerGlobalObject("Messages", DependencyManager::get().data()); qScriptRegisterMetaType(this, animVarMapToScriptValue, animVarMapFromScriptValue); qScriptRegisterMetaType(this, resultHandlerToScriptValue, resultHandlerFromScriptValue); @@ -376,10 +377,6 @@ void ScriptEngine::init() { auto scriptingInterface = DependencyManager::get(); registerGlobalObject("Controller", scriptingInterface.data()); UserInputMapper::registerControllerTypes(this); - - - registerGlobalObject("Messages", DependencyManager::get().data()); - } void ScriptEngine::registerValue(const QString& valueName, QScriptValue value) {