> Interesting approach - thank you for posting that.

DvR: You, of all people, will *love* this approach.

> Lacking "callers" and C_Object, I've been using On outside call +
> ObjectTools + IP messaging based on the ITK message queuing system.

Once you have access to V16, you may find:

* You like C_OBJECT because it's very fast and native. But it won't do
everything that ObjectTools does.

* You may still want to use IPC channels from NTK. They're traditional
messages, easily support a wider range of messaging patterns, and can be
used to-from anywhere.

* CALL FORM/CALL WORKER are great! You'll love them. On Outside Call was
always documented as being unreliable while CALL FORM / CALL WORKER
guarantee delivery. (Unless you kill a worker, kill a process, kill 4D, or
crash. But, hey, that's pretty reasonable for a lot of situations.)

> I'm not sure if this is germane to Call form/worker but I include a
"reply to ID"
> in the message that's sent.

Yes, that can be entirely relevant. These 'calls' aren't a channel, you're
tossing blocks of code at the end of the thread of control over there for
one-off execution. There is no return message. You can send along callback
details if, for example, you need a result. There are times when you'll
find NTK's IPC channels easier. And, yes, message discipline is _super_
beneficial. You mention that you're doing message routine. This can be
pretty darn impossible to trace or debug if there's nothing in the message
about the path that it has followed.

Tip: I've found it helpful to define a 'recipient' object as a specific
type. This can be the recipient of a CALL FORM/CALL WORKER message or the
callback details when you want a result, error, or confirmation message
returned. By treating this as a custom data type, it's easy to have a
single method for creating recipients and for validating them. "Validating"
matters if you, for example, want to be sure that method names exist and
that window refs are valid.

> My projects are just moving to 15.x now so Call worker/call form are still
> a bit out of reach for me but I'm glad to see that these have been added
to
> the language. They're a natural outgrowth of OOC, Call subform container,
> etc., and we *finally* have a way to communicate with those windows opened
> in the asterisk.

Yeah, you'll love it. Given our existing framework, you'll feel like some
things are missing - so keep NTK around. Also, vote for a native WebSockets
implementation. This would be an *amazingly* great addition to 4D. You
could have a persistent, bi-directional, point-to-point pipe between
processes on one machine or different machines. Game changer.

WebSocket protocol on 4D webserver
http://forums.4d.fr/Post/EN/19129127/1/19129128
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to