X-CGP-ClamAV-Result: CLEAN X-VirusScanner: Niversoft's CGPClamav Helper v1.22.2a (ClamAV engine v0.102.2) X-Junk-Score: 0 [] X-KAS-Score: 0 [] From: "Dennis Bliefernicht" Received: from outgoing.xyrality.com ([80.239.144.202] verified) by post.selbstdenker.com (CommuniGate Pro SMTP 6.3.3) with ESMTPS id 25334156 for webobjects-dev@wocommunity.org; Fri, 29 Jan 2021 15:28:46 +0100 Received-SPF: pass receiver=post.selbstdenker.com; client-ip=80.239.144.202; envelope-from=dennis.bliefernicht@xyrality.com Received: from [192.168.178.27] ( [46.94.18.33]) by outgoing.xyrality.com (Reddoxx engine) with SMTP-TLS id 3B58E8BE3FD; Fri, 29 Jan 2021 15:31:45 +0100 User-Agent: Microsoft-MacOutlook/16.45.21011103 Date: Fri, 29 Jan 2021 15:28:22 +0100 Subject: Re: [WO-DEV] Communication between 2 different browers (but same application) To: WebObjects & WOnder Development Message-ID: <9D81B4D4-6FF5-45B3-BA8C-90BC1305B5DA@xyrality.com> Thread-Topic: [WO-DEV] Communication between 2 different browers (but same application) References: In-Reply-To: Mime-version: 1.0 Content-type: multipart/mixed; boundary="B_3694778903_1887600504" > This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. --B_3694778903_1887600504 Content-type: multipart/related; boundary="B_3694778903_1926581785" --B_3694778903_1926581785 Content-type: multipart/alternative; boundary="B_3694778903_762548877" --B_3694778903_762548877 Content-type: text/plain; charset="UTF-8" Content-transfer-encoding: quoted-printable Hi, =20 this is coming from another language, but maybe is also a solution here. Th= e problem with polling is that is scales poorly and can result either in hig= h load or long delays (it all comes down to your application requirements re= ally). In our case we have a high volume and low latency requirements, so po= lling isn=E2=80=99t an option. =20 In one project, we use a Faye server and JS libraries to affect the client = state. The server is standalone, so you can just run it as a separate servic= e (i.e. it doesn=E2=80=99t matter much in which language it is really; it is a Rub= y application); it provides a basic WebSocket connection with a simple PubSu= b-protocol on top of it. A JS library on the client side connects to the websocket, registers for a = bunch of channels and waits (e.g. a channel like /user/some-magic-hash for a= user-specific channel) On the server side you can use a fairly straightforward API to push message= s to faye to inform the client to do something. Depending on how much effort= you put into the client you can more or less push arbitrary JS oder DOM cha= nges from the server side then. =20 In your example it might be that when the button is pressed, the server pus= hes an =E2=80=9Cenable-form-xyz=E2=80=9D message to the user=E2=80=99s channel. The client on = the second computer, which is connected to the same channel, receives an =E2=80=9C= enable-form-xyz=E2=80=9D and can use some simple JS manipulation to enable form fi= elds. Of course you should always do additional server-side validation in ca= se the second computer enters new data and such. =20 Isn=E2=80=99t quite as simple to setup but has some scaling advantages and provid= es fairly instant feedback. The protocol used is called Bayeux and I think t= here are other implementations, Faye for our purposes is just a very simple = standalone service to use here. =20 Greetings Dennis =20 Links: https://faye.jcoglan.com/ Faye Server/Client =20 --=20 ----------------------------------------------------- Dennis Bliefernicht =E2=80=A2 Head of Backend Development T +49 40 357 3001 62 dennis.bliefernicht@xyrality.com =20 XYRALITY GmbH =E2=80=A2 Friedensallee 290 =E2=80=A2 22763 Hamburg www.xyrality.com Registergericht: Hamburg HRB 115332 Gesch=C3=A4ftsf=C3=BChrer: Sven Ossenbr=C3=BCggen ----------------------------------------------------- =20 =20 From: WebObjects & WOnder Development on b= ehalf of "Markus Ruggiero (rucotec)" Reply-To: WebObjects & WOnder Development Date: Thursday, 28.January 2021 at 09:27=20 To: WebObjects & WOnder Development Subject: [WO-DEV] Communication between 2 different browers (but same appli= cation) =20 I need some conceptual help. Let=E2=80=99s say you have a browser open to a Wonder app (component based sessio= n). Imagine you go to a different computer and open another session (maybe v= ia direct action) to the same application. I want to have a button (or some = such) in the first window that when clicked communicates to that second inde= pendent window and enables some form fields there. The user then submits dat= a to the application from that second window. The first window registers the= submission and continues with the user interaction. How would you do something like this? Is this possible at all? Possibly the= second login could be from a mobile device and the presented browser page d= oes not allow to do more interaction with the application than just enter so= me data and submit. The first session is required do wait for the data (or a= cancel) and can then proceed. Thanks for any ideas / help =E2=80=94markus=E2=80=94 =20 Markus Ruggiero rucotec GmbH web https://rucotec.ch Steinenvorstadt 79 email markus.ruggiero@rucotec.ch 4051 Basel / Switzerland mobile +41 79 508 4701 =20 =20 =20 =20 =20 =20 --B_3694778903_762548877 Content-type: text/html; charset="UTF-8" Content-transfer-encoding: quoted-printable

Hi,

 

this is coming from = another language, but maybe is also a solution here. The problem with pollin= g is that is scales poorly and can result either in high load or long delays= (it all comes down to your application requirements really). In our case we= have a high volume and low latency requirements, so polling isn=E2=80=99t an opti= on.

 

In one project, we use a Faye server and JS libraries to affect the client = state. The server is standalone, so you can just run it as a separate servic= e (i.e. it doesn=E2=80=99t matter much in which language it is really; it is a Rub= y application); it provides a basic WebSocket connection with a simple PubSu= b-protocol on top of it.

A JS library on th= e client side connects to the websocket, registers for a bunch of channels a= nd waits (e.g. a channel like /user/some-magic-hash for a user-specific chan= nel)

On the server side you can use a fairl= y straightforward API to push messages to faye to inform the client to do so= mething. Depending on how much effort you put into the client you can more o= r less push arbitrary JS oder DOM changes from the server side then.

 

In your ex= ample it might be that when the button is pressed, the server pushes an =E2=80=9Ce= nable-form-xyz=E2=80=9D message to the user=E2=80=99s channel. The client on the second = computer, which is connected to the same channel, receives an =E2=80=9Cenable-form= -xyz=E2=80=9D and can use some simple JS manipulation to enable form fields. Of co= urse you should always do additional server-side validation in case the seco= nd computer enters new data and such.

=  

Isn=E2=80=99t quite as simple to setup but has = some scaling advantages and provides fairly instant feedback. The protocol u= sed is called Bayeux and I think there are other implementations, Faye for o= ur purposes is just a very simple standalone service to use here.=

 

Greetings

Dennis

&= nbsp;

Links:

 

-- 

=

3D"signat=
-----------------------------------------------------<= span style=3D'font-size:9.0pt;font-family:Helvetica;color:black'>
Dennis Blie= fernicht =E2=80=A2 Head of Backend Development

T +49 40 357 3001 62

d= ennis.bliefernicht@xyrality.com

<= span lang=3DDE style=3D'font-size:9.0pt;font-family:Helvetica;color:black'>=  

XYRALITY GmbH =E2=80=A2 Friedensal= lee 290 =E2=80=A2 22763 Hamburg

www.xyral= ity.com

Registergericht: H= amburg HRB 115332
Gesch=C3=A4ftsf=C3=BChrer: Sven Ossenbr=C3=BCggen

-----------------------------------------------------

 

 

From: WebObjects & WOnder Development <we= bobjects-dev@wocommunity.org> on behalf of "Markus Ruggiero (rucotec= )" <webobjects-dev@wocommunity.org>
Reply-To: WebObject= s & WOnder Development <webobjects-dev@wocommunity.org>
Date= : Thursday, 28.January 2021 at 09:27
To: WebObjects & WOn= der Development <webobjects-dev@wocommunity.org>
Subject: [W= O-DEV] Communication between 2 different browers (but same application)=

 

I need some concept= ual help.

Let=E2=80=99s say you have a browser open to a Wonder app (compon= ent based session). Imagine you go to a different computer and open another = session (maybe via direct action) to the same application. I want to have a = button (or some such) in the first window that when clicked communicates to = that second independent window and enables some form fields there. The user = then submits data to the application from that second window. The first wind= ow registers the submission and continues with the user interaction.

= How would you do something like this? Is this possible at all? Possibly the = second login could be from a mobile device and the presented browser page do= es not allow to do more interaction with the application than just enter som= e data and submit. The first session is required do wait for the data (or a = cancel) and can then proceed.

Thanks for any ideas / help
=E2=80=94marku= s=E2=80=94

 

<= div>


Markus Ruggiero=

<= span style=3D'font-size:9.0pt;font-family:Helvetica;color:black'>

<= /o:p>

rucotec GmbH&n= bsp;                  &nbs= p;    web https://rucotec.c= h=

Steinen= vorstadt 79                = ;email markus.ruggiero@ruco= tec.ch

40= 51 Basel / Switzerland         mobile +41= 79 508 4701

 

 

&nb= sp;

 

=  

&nbs= p;



<= /o:p>

--B_3694778903_762548877-- --B_3694778903_1926581785 Content-type: image/png; name="image001.png"; x-mac-creator="4F50494D"; x-mac-type="504E4766" Content-ID: Content-disposition: inline; filename="image001.png" Content-transfer-encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAKAAAAAnCAYAAACIekNNAAAAGXRFWHRTb2Z0d2FyZQBBZG9i ZSBJbWFnZVJlYWR5ccllPAAAA+VpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tl dCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1l dGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUu Ni1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpS REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt bnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6 Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9u cy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxl bWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjhFRjJFRTE5Qzk5 NTExREZBQjAzQzAzNUM4NDg2QkM1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE4REQ5 Q0EyMkEwQjExRTU5MUNERjc0QTdGQjBBNEE4IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlk OjE4REQ5Q0ExMkEwQjExRTU5MUNERjc0QTdGQjBBNEE4IiB4bXA6Q3JlYXRvclRvb2w9IkFk b2JlIElsbHVzdHJhdG9yIENTNS4xIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3Rh bmNlSUQ9InhtcC5paWQ6M0UwMjgyMTMyN0JGMTFFNUI4MTVGQTAxNkZFQTQyQ0IiIHN0UmVm OmRvY3VtZW50SUQ9InhtcC5kaWQ6M0UwMjgyMTQyN0JGMTFFNUI4MTVGQTAxNkZFQTQyQ0Ii Lz4gPGRjOnRpdGxlPiA8cmRmOkFsdD4gPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij54 eXJhbGl0eTU8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRpdGxlPiA8L3JkZjpEZXNjcmlw dGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnbW5A0A AArpSURBVHja7FwJtFZTFD7/e39FyYtQhFKZp7KSQoaEl4S0zFMsFBUyZIjCy6JoWmUqmVaG 0NMzJWM8ZSjzShNNRCUp1evl9b/f/tb97uq6nXOH/97nedy91veG+597/nP22WefvffZ56QW fq82KKWuFjyl/OlzwRTB7QHKtha8L2gvmONTdhfBbMGlgtcC1H2ZYLxPmemCgYL3VDy0vWCu 4DrBCxHrekOwRHCVio+OE7woOEiwIkD55wXnhKgf/Dzap8xtgovYhoxP2W6CCWn58a3gRvzj 81JHwWGCAQEbvIT13USB8aJeggYUwiC0mwATp59gs+uzlGBXQXfBO4K+ggdjGOA2rLcwBgFs JNio4iXwbydBvYDlhwumup41ERQJHhB85+LpogB1fiy4R3CqoMSn7M2oMyUasB1fPEvwkk/l +YK2IZhyvWCYoLlHB8C4nwSPC64JWC80W28OpInAtCGcAJ0E70YcYAzKDZxY+wnKI9Q1U7CY PI+LThdM9uG1H+0hWMoxnpljHR8IGgoOFmQNZU4UvCXonCc/PuGyejcHTUfHCCCod4RszFjB GsGtHmWw/NcVDA1Rb5ZtreVTpj8Zea9H34IQ+HQKV4smXAn+i7Qdf9eLUAdk5EDyy0SDOS5v 5vHBXYL9qTp1BOH8RqOy/Wg9tdDlnF1uqk8hGUctWBX0sOBwH23pR/uRP2Duz4KuKiETfUil VmT4/Fhq2IH2zAZ9Kig1vHQEXxoYQQA2UNDcdIWggBqqqmgpfxdEqKOQS+4bXGJOT+TMVwu2 punjpiKuJFOdAmjbVYcKTtJov3mCV3NszFraT3A0Gjue16XX9CTtoaqilGNJzpXOFHwkqCAf oA2bJXJmpHcYMXErNEREOlBAs24BnCb4zPXSYRTIQYLKCA0azcG7wfHsUhqrg//lzGzIVaDY YWRnaEgn5K0F29F/cCqzuU5llqfxLttyyQXdSY9qUsTGrBaMYEhkB3rTiCU+K/ihihnRgrPt 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 SUVORK5CYIIA --B_3694778903_1926581785-- --B_3694778903_1887600504--