Multi-standalone communication

Kay C Lan lan.kc.macmail at gmail.com
Sat Dec 9 00:38:58 CST 2006


On 12/7/06, Richard Miller <wow at together.net> wrote:
>
> Looking for suggestions on how to have 2 or 3 Rev standalones talk to
> one another (under Windows). These separate Rev apps cannot share the
> same engine. Perhaps it's quite easy and I'm just overlooking it.


OK, I'm a hobbyist I'll stick my head out, but all the solutions here seem
to be overly complex for what appears to only require local processing at
the speed of button clicking. I use a method that is easy and seems to be
overlooked.

I regularly send large amounts of data between 2 Standalones, you can:

set the myCustomProp of stack "Standalone No 2" to tMyLargeAmountData
-- if you just want the data to be available in Stack 2 for later use. If
you want to start a process and send data to another stack it's pretty
simple to:

send hHandlerInAnotherStack tMyLargeAmountData to stack "Standalone 2"

I only do this between two stacks, so specifying 'to stack "ABC" or 'to
stack "DEF" is pretty easy, but I imagine that if you were working with 4 or
5 standalones it might be simpler to create a library stack, of which all 5
use, and then include 3 parameters with your handlers, the long Name of
the Originating object, the long Name of the Destination object, the data

The only problem with this is possible queuing conflicts. I don't know what
will happen. In my case I click a button in Standalone 1 and in the
background something happens in Standalone 2. If I go to Standalone 2 I can
do things that change things in Standalone 1. If I click in Standalone 1 to
start the process in Standalone 2, and then immediately go to Standalone 2
and it hasn't finished processing then I get the usual busy cursor. I can
either click back to Standalone 1 and do something whilst Standalone 2 is
crunching away or I can stay in Standalone 2 and wait for it to finish, then
proceed.

What I don't know is if you have 5 Standalones, and you click in Standalone
1 and it starts a process in Standalone 2 which runs a process in 3, which
runs a process in 4, which runs a process in 5 which sends a message back to
1. If 1 is idle, it will be activated and everything will work. But if you
commenced a Standalone 1 process and it is 'busy' and Standalone 5 sends a
message to 1, I don't know if the queued message will be handled correctly.
Actually I'm sure a couple of queued messages would be correctly dealt with,
it is whether you have 100s of messages from different Standalones all
queued whether they'll be handled correctly.

I guess that's why everyone else has come up with more complex options, but
depending on your needs, 'of stack "ABC" ' and 'send' maybe all you need:-)
In my case I'm certainly no 'clicker at the speed of an sms sending
teenager', so there is plenty of idle time in Standalone1 to catch 'send'
from Standalone 2 and vica versa.

I'm sure those in the know will tell me what other 'gotchas' exist with this
method:-)



More information about the use-livecode mailing list