Mensajería instantánea con contenido arbitrario
En una sesión de escritorio, cargue un paquete que cree un canal de demostración de mensajería instantánea ("WIM") y comience a escuchar en él.
In[1]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_34.png)
Needs["DemoChannels`WIM`"]
Cree su canal WIM y comience a escuchar en él.
In[2]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_35.png)
channel = CreateWIMChannel[]
Out[2]=
![](assets.es/instant-messaging-with-arbitrary-content/O_38.png)
In[3]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_36.png)
listener = ChannelListen[channel]
Out[3]=
![](assets.es/instant-messaging-with-arbitrary-content/O_39.png)
Envíese a usted mismo un WIM, y note su mensaje en un nuevo cuaderno de diálogo.
In[4]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_37.png)
ChannelSend["WIM", "Hi there."]
Out[4]=
![](assets.es/instant-messaging-with-arbitrary-content/O_40.png)
Out[5]=
![](assets.es/instant-messaging-with-arbitrary-content/O_41.png)
Adjunte el actual cuaderno a un mensaje.
In[6]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_38.png)
ChannelSend["WIM", {"Sending a notebook.", InputNotebook[]}]
Out[6]=
![](assets.es/instant-messaging-with-arbitrary-content/O_42.png)
Out[7]=
![](assets.es/instant-messaging-with-arbitrary-content/O_43.png)
Otros usuarios pueden enviarle un WIM incluyendo su canal completamente calificado.
In[8]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_39.png)
yourWIM = $WolframID <> ":WIM"
Out[8]=
![](assets.es/instant-messaging-with-arbitrary-content/O_44.png)
In[9]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_40.png)
ChannelSend[yourWIM, "hello"]
Out[9]=
![](assets.es/instant-messaging-with-arbitrary-content/O_45.png)
O su URL de WIM.
In[10]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_41.png)
listener["URL"]
Out[10]=
![](assets.es/instant-messaging-with-arbitrary-content/O_46.png)
In[11]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_42.png)
listener["URL"];
ChannelSend[%, "another message"]
Out[11]=
![](assets.es/instant-messaging-with-arbitrary-content/O_47.png)
Cualquier persona también puede enviarle un mensaje desde un navegador web (o cualquier otro cliente HTTP) creando una solicitud de HTTP al siguiente URL.
In[12]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_43.png)
URLBuild[listener["URL"], {"operation" -> "send",
"Message" -> "yet another message"}]
Out[12]=
![](assets.es/instant-messaging-with-arbitrary-content/O_48.png)
In[13]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_44.png)
URLBuild[listener["URL"], {"operation" -> "send",
"Message" -> "yet another message"}];
URLFetch[%]
Out[13]=
![](assets.es/instant-messaging-with-arbitrary-content/O_49.png)
Para responder a los mensajes entrantes desde otros usuarios, autorice la comunicación en los canales de usuario.
In[14]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_45.png)
Unprotect[$AllowExternalChannelFunctions];
$AllowExternalChannelFunctions = True;
Deje de escuchar y restaure la configuración de seguridad.
In[15]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_46.png)
RemoveChannelListener[listener]
Out[15]=
![](assets.es/instant-messaging-with-arbitrary-content/O_50.png)
In[16]:=
![Click for copyable input](assets.es/instant-messaging-with-arbitrary-content/In_47.png)
$AllowExternalChannelFunctions = False;
Protect[$AllowExternalChannelFunctions];