Thanks for sharing your insight Richard. Great food for thought.
Phil
On 11/5/19 12:29 AM, Richard Gaskin via use-livecode wrote:
Phil Davis wrote:
> I need to make a desktop app (Mac only for now) that receives pushed
> data from a LC server. I've never done this - all the desktop <->
> server interactions I've programmed have used the traditional client-
> server model. So I'm looking for approaches/tips/ideas from anyone
> who has experience with other approaches.
I'd stick with simple polling for this. Anything else requires either
opening a socket (with all the firewall/router changes needed to allow
that), or creating a dependency on a separate process like push
notifications, which would likely require LCB.
Polling can get the job done well enough, and is secure and requires
no router changes or external dependencies. And if down the road you
find a convenient way to switch to something else you can change that
part, but at least it lets you get it out the door now using reliable
features and your existing skillset.
> And maybe I'm making it too hard. Can FTP watch a server folder, and
> detect and respond to the creation of a file in the folder? Maybe I
> could use a method like that, if that's a capability of FTP.
You could poll from the client using FTP, but compared to HTTP it's a
noisy protocol, with many more steps internally. The inefficiency of
FTP is more than offset by its utility when ad hoc access to remote
file stores are needed. But when the goal is more specific, HTTP will
often beat it for both efficiency and client implementation cost every
time.
On the server, an LC Server script that reports any changes to a
folder from the last time it was called would be straightforward to
write, give you reliably consistent results*, and would run quickly.
* Years ago when I was monitoring folders with FTP I learned more than
I cared to about FTP date representations. They vary. A lot. By
different rules, according to a vastly flexible set of config options.
So you can never know which server will use month-and-day only up to a
certain cutoff, and then one of several month-day-year options for
anything older. Sometimes the cuttoff is a month. Sometimes it's the
year break. Other times it's a specific number of days. "Hey man,
it's all about flexibility!" In all cases it can mean a listing in
which date representations take on at least two different formats.
Even if you just had LC Server return "the detailed files" at least
you'd have solid consistency in the format of every file, every time.
--
Phil Davis
503-307-4363
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode