[squeak-dev] inter-image communication and queueing suggestions?
gettimothy at zoho.com
Fri Oct 15 12:32:40 UTC 2021
I was able to make the last example here: http://wiki.squeak.org/squeak/325 work.
For some reason, using UDP throws an error, I do not know why, and of course, I will waste time trying to figure out why.
I will give your example a go next!
Then, I will try the pharo->squeak send.
this is fun!
---- On Fri, 15 Oct 2021 08:19:35 -0400 Marcel Taeumel <marcel.taeumel at hpi.de> wrote ----
Hi Timothy --
Sockets work something like this (even though network name resolving seems to be tricky on my Windows machine at the moment):
| hostName port serverSocket serverProcess clientSocket |
hostName := NetNameResolver localHostName.
port := 1234.
data := 'Hello World!'.
serverSocket := Socket newTCP.
serverSocket listenOn: port.
serverProcess := [
| receivedData |
serverSocket waitForConnectionFor: 10 "seconds".
Transcript showln: 'Server accepted client connection'.
receivedData := serverSocket receiveData.
Transcript showln: 'Data received: ', receivedData.
serverProcess priority: Processor userBackgroundPriority.
serverProcess resume. "or use #forkAt: directly on block"
clientSocket := Socket newTCP.
connectTo: (NetNameResolver addressFromString: hostName)
Transcript showln: 'Client connected to server'.
Transcript showln: 'Data sent: ', (clientSocket sendData: data), ' bytes'.
Am 15.10.2021 13:34:07 schrieb gettimothy <mailto:gettimothy at zoho.com>:
I have not found any information on sockets in SBE or PBE. I will continue too look.
In my exploring, I thought JSON looked promising..pharo as a json server thingy that perhaps squeak could consume.
IIRC Stomp, which I have used previously on squeak has two side too, but I am not sure on this.
---- On Fri, 15 Oct 2021 04:16:35 -0400 Marcel Taeumel <mailto:marcel.taeumel at hpi.de> wrote ----
Hi Timothy --
If it is just a text stream, use sockets. If it is a data/byte stream ... well ... I am not sure whether the byte interpretation for structured objects is still compatible between Pharo and Squeak.
Maybe you could also use a file and two file streams, a writer in Pharo and a reader in Squeak, as intermediary ...
Am 14.10.2021 15:24:23 schrieb gettimothy via Squeak-dev <mailto:squeak-dev at lists.squeakfoundation.org>:
I have used ApacheMQ(?) and Stomp in squeak to communicate between squeak and a C++ application, it worked well, but I would like to avoid this for my project.
What I (will) have is a pharo image that will parse a large XML document for me (squeak has FileSystem incompatabilities that SAXHandler etc need) .
During a SAXHandler callback, I want to kick this to an image that will parse some data using a PEG grammar I wrote and that needs some automated testing to perfect.
Communication I would like is pharo (sax) -> squeak(xtreams-parsing).
Some basic reading showed rST from about 2005? as a possibility as well as Nebraska,which I believe has been removed from Squeak several releases ago.
I have used neither of them.
If there is not a method I can make work, then I will do pharo(sax/stomp)->ApacheMQ->squeak(stomp/xtreams-parsing), but I prefer a pure smalltalk mechanism.
I still have a textbook of mpq(?) queues from a course I really enjoyed and pharo(sax)->squeak(queueing)->squeak(xtreams-parsing) would be really cool.
thx in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev