Сбор данных из HTTP-запросов
Зададим функцию, которая озвучивает значение параметра param при поступлении сообщения, содержащего param.
In[1]:=
![Click for copyable input](assets.ru/collect-data-from-http-requests/In_15.png)
listener =
ChannelListen["speak",
Speak["Arrived " <> ToString[Lookup[#Message, "param"]]] &,
Permissions -> "Public"]
Out[1]=
![](assets.ru/collect-data-from-http-requests/O_14.png)
Отправим сообщение для функции-слушателя с терминала на том же или любом другом компьютере с помощью cURL и прослушаем сообщение от слушателя.
In[2]:=
![Click for copyable input](assets.ru/collect-data-from-http-requests/In_16.png)
"curl \"" <>
URLBuild[listener["URL"], {"operation" -> "send",
"param" -> 123}] <> "\""
Out[2]=
![](assets.ru/collect-data-from-http-requests/O_15.png)
Out[3]=
![](assets.ru/collect-data-from-http-requests/O_16.png)
Отправим сообщение из веб-браузера.
In[4]:=
![Click for copyable input](assets.ru/collect-data-from-http-requests/In_17.png)
URLBuild[listener["URL"], {"operation" -> "send", "param" -> 456}]
Out[4]=
![](assets.ru/collect-data-from-http-requests/O_17.png)
Out[5]=
![](assets.ru/collect-data-from-http-requests/O_18.png)
Отправим сообщение из системы Wolfram.
In[6]:=
![Click for copyable input](assets.ru/collect-data-from-http-requests/In_18.png)
ChannelSend[$WolframID <> ":speak", <|"param" -> 789|>]
Out[6]=
![](assets.ru/collect-data-from-http-requests/O_19.png)
Данные, полученные слушателем.
In[7]:=
![Click for copyable input](assets.ru/collect-data-from-http-requests/In_19.png)
listener["Dataset"]
Out[7]=
![](assets.ru/collect-data-from-http-requests/O_20.png)