Как организовать обмен сообщениями в комнате NetsBlox: различия между версиями
Patarakin (обсуждение | вклад) |
Patarakin (обсуждение | вклад) |
||
| Строка 78: | Строка 78: | ||
* В первом браузере нажать блок отправки сообщения | * В первом браузере нажать блок отправки сообщения | ||
* Во втором браузере появится текст "Важное сообщение" | * Во втором браузере появится текст "Важное сообщение" | ||
<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> | |||
==== Создать несколько ролей и передать их коллегам ==== | ==== Создать несколько ролей и передать их коллегам ==== | ||
Версия от 11:06, 12 ноября 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
- Во втором браузере принять приглашение
- В первом браузере нажать блок отправки сообщения
- Во втором браузере появится текст "Важное сообщение"
Diagrams error (with plantuml command): Feb 06, 2026 8:15:32 PM java.util.prefs.FileSystemPreferences$1 run
WARNING: Couldn't create user preferences directory. User preferences are unusable.
Feb 06, 2026 8:15:32 PM java.util.prefs.FileSystemPreferences$1 run
WARNING: java.io.IOException: No such file or directory
Error line 12 in file: /tmp/diagrams_in8395b098221f.plantuml
Some diagram description contains errors
Feb 06, 2026 8:15:33 PM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock User prefs. Unix error code 2.
Feb 06, 2026 8:15:33 PM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
Создать несколько ролей и передать их коллегам
Создать различные типы сообщений:
Каждое сообщение имеет тип, который определяется:
- Именем (например, «message», «chat», «connect»)
- Полями (список данных, которые переносит сообщение)
NetsBlox поставляется с одним встроенным типом сообщения — «message» с полем «msg».
Для более сложных приложений можно определить новые типы сообщений. Как создать новый тип сообщения:
- Перейти на вкладку Network
- Нажать серую кнопку Make a message type
- Ввести имя типа (например, «chat»)
- Добавить поля нажатием стрелки (например, «sender», «text»)
- Нажать OK

