Как организовать обмен сообщениями в комнате NetsBlox: различия между версиями
Patarakin (обсуждение | вклад) |
Patarakin (обсуждение | вклад) Нет описания правки |
||
| (не показано 5 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
{{Scripting Tutorials | {{Scripting Tutorials | ||
|Description=Обмен сообщениями — это способ создания распределённых программ в NetsBlox (кроме удалённых вызовов процедур, RPC). Если RPC работает по принципу запрос-ответ, то обмен сообщениями позволяет отправлять данные между программами, запущенными на разных компьютерах, используя асинхронную коммуникацию. Каждый проект NetsBlox имеет одну комнату (Room), которая содержит одну или несколько ролей (Roles) | |Description=Обмен сообщениями — это способ создания распределённых программ в NetsBlox (кроме удалённых вызовов процедур, RPC). Если RPC работает по принципу запрос-ответ, то обмен сообщениями позволяет отправлять данные между программами, запущенными на разных компьютерах, используя асинхронную коммуникацию. Каждый проект NetsBlox имеет одну комнату (Room), которая содержит одну или несколько ролей (Roles) | ||
|FieldActivity=Computational Thinker | |FieldActivity=Computational Thinker | ||
|Возрастная категория=14 | |Возрастная категория=14 | ||
|similar_concepts=Сообщение | |similar_concepts=Сообщение | ||
|Environment=NetsBlox | |Environment=NetsBlox | ||
}} | }} | ||
Обмен сообщениями — это второй способ создания распределённых программ в [[NetsBlox]] (кроме удалённых вызовов процедур, RPC). Если [[RPC]] работает по принципу запрос-ответ, то обмен сообщениями позволяет отправлять данные между программами, запущенными на разных компьютерах, используя асинхронную коммуникацию. | Обмен сообщениями — это второй способ создания распределённых программ в [[NetsBlox]] (кроме удалённых вызовов процедур, RPC). Если [[RPC]] работает по принципу запрос-ответ, то обмен сообщениями позволяет отправлять данные между программами, запущенными на разных компьютерах, используя асинхронную коммуникацию. | ||
| Строка 60: | Строка 59: | ||
[[Файл:Rooms sender receiver.png|400px]] | [[Файл:Rooms sender receiver.png|400px]] | ||
==== ==== | ==== Проект с обменом сообщениями ==== | ||
{{#widget:Iframe | |||
|url=https://editor.netsblox.org/?action=present&Username=patarakin&ProjectName=Act2 | |||
|width=640 | |||
|height=600 | |||
|border=0 | |||
}} | |||
| Строка 73: | Строка 79: | ||
[[Файл:Receiver Hello 2 screens.png|400px]] | [[Файл:Receiver Hello 2 screens.png|400px]] | ||
* Открыть два браузера | |||
* В первом браузере на вкладке Room нажать на Receiver и выбрать Invite User → myself | |||
* Во втором браузере принять приглашение | |||
* В первом браузере нажать блок отправки сообщения | |||
* Во втором браузере появится текст "Важное сообщение" | |||
<uml> | |||
@startuml | |||
skinparam backgroundColor #FEFEFE | |||
participant "Браузер 1\n(Sender)" as B1 | |||
participant "Интернет" as Net | |||
participant "Браузер 2\n(Receiver)" as B2 | |||
B1 -> Net: Нажать блок\nsend message\nto Receiver | |||
Net -> B2: Доставить сообщение\n{msg: "Важное сообщение"} | |||
B2 -> B2: Выполнить\nwhen I receive\nБлок say | |||
B2 -> B2: На сцене появляется\n"Важное сообщение" | |||
</uml> | |||
==== Создать несколько ролей и передать их коллегам ==== | ==== Создать несколько ролей и передать их коллегам ==== | ||
Текущая версия от 14:22, 25 ноября 2025
| Описание | Обмен сообщениями — это способ создания распределённых программ в NetsBlox (кроме удалённых вызовов процедур, RPC). Если RPC работает по принципу запрос-ответ, то обмен сообщениями позволяет отправлять данные между программами, запущенными на разных компьютерах, используя асинхронную коммуникацию. Каждый проект NetsBlox имеет одну комнату (Room), которая содержит одну или несколько ролей (Roles) |
|---|---|
| Область знаний | |
| Область использования (ISTE) | Computational Thinker |
| Возрастная категория | 14
|
| Поясняющее видео | |
| Близкие рецепту понятия | Сообщение |
| Среды и средства для приготовления рецепта: | NetsBlox |
Обмен сообщениями — это второй способ создания распределённых программ в NetsBlox (кроме удалённых вызовов процедур, RPC). Если RPC работает по принципу запрос-ответ, то обмен сообщениями позволяет отправлять данные между программами, запущенными на разных компьютерах, используя асинхронную коммуникацию.
Сообщения (message) похожи на события в Scratch (блоки «broadcast» и «when I receive»), но с двумя ключевыми отличиями:
- Сообщения могут содержать данные (поля с информацией) - так же как и в предке NetsBlox Snap!
- Сообщения могут быть отправлены на другие компьютеры, не только между спрайтами в одном проекте
Каждый проект NetsBlox имеет одну комнату (Room), которая содержит одну или несколько ролей (Roles)

Создать пару ролей в комнате Hello
- Создать новый проект
- На вкладке Room переименовать текущую роль на «Sender»
- Нажать значок «+» и создать роль «Receiver»
send message with msg: "Hello World" to Receiver
- when I receive message (msg)
- say (msg)
Каждая роль - отдельное пространство со своими спрайтами и скриптами
Можно переключаться между ролями
Создать 3 роли в комнате
Проект с обменом сообщениями
Послать сообщение от одной роли другой
Выбрать себя в качестве получателя
- Открыть два браузера
- В первом браузере на вкладке Room нажать на Receiver и выбрать Invite User → myself
- Во втором браузере принять приглашение
- В первом браузере нажать блок отправки сообщения
- Во втором браузере появится текст "Важное сообщение"

Создать несколько ролей и передать их коллегам
Создать различные типы сообщений:
Каждое сообщение имеет тип, который определяется:
- Именем (например, «message», «chat», «connect»)
- Полями (список данных, которые переносит сообщение)
NetsBlox поставляется с одним встроенным типом сообщения — «message» с полем «msg».
Для более сложных приложений можно определить новые типы сообщений. Как создать новый тип сообщения:
- Перейти на вкладку Network
- Нажать серую кнопку Make a message type
- Ввести имя типа (например, «chat»)
- Добавить поля нажатием стрелки (например, «sender», «text»)
- Нажать OK

