Object Creation
To create a messageport object first load the @brightsign/messageport module using the require() method.
Code Block | ||
---|---|---|
| ||
var MESSAGE_PORT = require("@brightsign/messageport");
var bsMessage = new MESSAGE_PORT(); |
MessagePort
PostBsMessage ()
Code Block | ||
---|---|---|
| ||
PostBsMessage(Object message) |
Objects passed to PostBSMessage() will be received as events in the parent application:
for HTML widgets created from BrightScript, the parent roHtmlWidget will generate a roHtmlWidgetEvent with reason set to "message"
for HTML widgets created from JavaScript, the parent @brightsign/htmlwidget will generate a "message" event
for Node applications, the parent roNodeJs object will generate aroNodeJsEvent with reason set to "message"
Examples
The following script will send a collection of properties to BrightScript:
Code Block | ||
---|---|---|
| ||
function myFunction()
{
var bsMessage = new require("@brightsign/messageport");
bsMessage.PostBSMessage({complete: true, result: "PASS"});
} |
The message will appear in BrightScript as an roNodeJsEvent. In this case, the GetData().reason equals "message" and GetData().message contains the roAssociativeArray.
Code Block | ||
---|---|---|
| ||
while not finished
ev = mp.WaitMessage(30000)
if type(ev) <> "roHtmlWidgetEvent" then
print type(ev)
stop
end if
payload = ev.GetData()
print payload
print "Reason: "; payload.reason
if payload.reason = "message" then
print "Message: "; payload.message
if payload.message.complete = invalid then
stop
else if payload.message.complete = "true" then
finished = true
if payload.message.result = "PASS" then
print "Test passed"
else
print "Test failed: "; payload.message.err
stop
end if
end if
end if
end while |
The following script will display the contents of the event:
Code Block | ||
---|---|---|
| ||
var MESSAGE_PORT = require("@brightsign/messageport");
var bsMessage = new MESSAGE_PORT();
bsMessage.addEventListener('bsmessage', function(msg) { console.log(JSON.stringify(msg)); }) |
In BrightScript, the roNodeJs.PostJSMessage() method can be used to post a message to JavaScript:
Code Block | ||
---|---|---|
| ||
nodejs.PostJSMessage({ Param1: "Data1", Param2: "Data2", Param3: "Data3" }) |