SWT (Squeak Web Toolkit) - Algo más para mostrar: Ping-Pong
self serverSide foo. |
De forma análoga, cuando estamos en el Server podemos enviar mensajes a la parte Client de la siguiente forma:
self clientSide bar. |
La parte Client, al enviarle el mensaje #serverSide, nos devuelve un Proxy que reenvía los mensajes al Squeak usando JSON-RPC. Por otro lado, la parte Server, cuando le envíamos el mensaje #clientSide nos devuelve un Proxy que reenvía los mensajes recibidos, al Cliente, usando la conexión Comet.
- Con esto ya sabemos lo suficiente para ver el código del ejemplo Ping-Pong.
- La parte Client de nuestro ejemplo (SWTPingPongClientApplication) tiene sólo 2 métodos, veamos el primero:
- Allí vemos como se crean 2 widgets: Un Header y un Button. Si, lo sé... no es nada espectacular... pero lo interesante está dentro del evento #onClick del botón:
initializeWidgets "Initialize the receiver's widgets" | root | root := self rootWidget. root addWidget: (SWTHeader level: 2 contents: 'Ping Pong'). root addWidget: (SWTButton caption: 'ping server' onClick: [:event | self serverSide ping]). |
-
self serverSide ping -
Cuando hagamos click sobre el botón, el mensaje #ping se evaluará, ¡pero del lado del servidor!. Veamos entonces la implementación de #ping en el Server (SWTPingPongServerApplication).
-
ping
Transcript show: 'ping!'; cr.
self clientSide pong. -
-
Este método, además de mostrar algo en el Transcript, devuelve el "favor" a su contraparte Client en la última línea.
-
Ahora, para terminar, veamos la implementación de #pong en lado Client (SWTPingPongClientApplication).
-
pong
^ self inform: 'pong!'
Si les gustó, miren este Screencast
0 Comentarios:
Publicar un comentario
<< Principal