Nothing complex about two images exchanging messages, its not even complex to transmit objects via fuel, you even transmit a debugger or any part of the live environment or even make an "internet" of images that join objects together. Sky is the limit. Pharo already provides you will all the tools/libraries to do this.
A streamsocket (not to be confused with regular sockets) will delay the messages (a collection of bytes) until they arrive to the receiver or until they have reached the timeout period. Offline mode is pretty much obligatory even for plain old internet web apps because of drops in connection or the plain fact a connection can become slow. I used streamsockets in my Pharo to Python bridge (Atlas) because the execution was not necessary synchronous , I was sending Python command to a 3d application from Pharo and I had to make sure that the bridge was working even in the case of a command that could take hours to execute like a rendering process. One cool trick I did was to send the Python errors back to Pharo and trigger them as Pharo's regular MessageNotUnderstood , this is a nice way to make sure that you can fix a wrong message after it has been executing without going to the image that is executing it. The limitation with sockets which what every frameworks uses because AFAIK they are the only means to communicate remotely is that they are not top performance so that mean that you can send long loops but executing communication inside long loops will either slow you down considerably or simply timeout your socket. Sockets can timeout from both ends if they feel that for some reason they lost communication with the other side and reached their timeout period. Timeout period is customization. This is a problem I did not tackle with my implementation because I dont think there can be an actual practical solution better than avoiding this scenario. Only shared memory seems to overcome this but it can be used only locally and not remotely (aka on same computer) . On Wed, Oct 25, 2017 at 4:41 PM Cédrick Béler <cdric...@gmail.com> wrote: > I had a look and this is not (natively) possible. > > The idea of the off-line mode would be to delay messages that are sent to > the peer until a connection is established. > > I think I have to try to do it by myself (like having a list of > information exchange that wait until a connexion is established). > > What I try to do is not as complex as two general image exchanging > messages on objects (like on TelePharo). > > I just want a repository of information (mainly a collection of static > information/data versions) on both peers to be synchronized when a > connection is established. > > > > > > Le 25 oct. 2017 à 15:31, Denis Kudriashov <dionisi...@gmail.com> a écrit : > > What is offline mode? > > 2017-10-25 15:10 GMT+02:00 Cédrick Béler <cdric...@gmail.com>: > >> Thanks Denis. I will ! I knew I have seen a telephoto component that >> could help but forgot about it ! >> >> Do you know if it’s possible to handle offline mode ? >> >> >> >> Le 25 oct. 2017 à 15:05, Denis Kudriashov <dionisi...@gmail.com> a écrit >> : >> >> Look at Seamless https://github.com/dionisiydk/Seamless. >> >> 2017-10-25 14:21 GMT+02:00 Cédrick Béler <cdric...@gmail.com>: >> >>> Hi all, >>> >>> I want to connect two applications (1 by image, each one on a different >>> computer) so as as to exchange information (data) between them. >>> >>> So my question is about the best (smalltalk) practices to connect two >>> app/image and exchange data. >>> >>> I imagine either with a direct connection through a network (TCP Socket, >>> Web socket, pure HTTP with Zinc) and/or with a serial connection. >>> At first, without any « security ». But later, information exchanges >>> will be encrypted. >>> >>> I’ve seen some information on how to use SerialPort, or even FileStream. >>> I could do it (or at least simulate it with HTTP). What are the other >>> options ? Socket ? >>> Do we have P2P libs (I couldn’t find) with eventually discovery features >>> ? >>> >>> Any comment / suggestion / pointers are greatly welcome. >>> >>> TIA. >>> >>> Cédrick >>> >> >> >> > >