Ipc что это в роутере

IPC роутер 4-х канальный, WIFI маршрутизатор, усилитель сигнала для WIFI видеокамеры или видеокомплекта

Цена: 1,690руб

Доступные варианты

Блок питания 12В 2А:

Адаптер 12В 2А (5,5*2,5) +350<font class=руб» /> Адаптер 12В 2А (5,5*2,5) (+350руб)

4-х канальный IPC роутер, WIFI маршрутизатор, предназначен для подключения IP видеокамер к сети интернент или к видеорегистатору или используется как репитер для усиления сигнала WIFI 2,4 ггц сети.
Позволяет превратить проводной IP видеокомплект в беспроводный. При подключении проводных IP видеокамер через маршрутизатор и  далее через LAN разьем устройства, можно передавать изображение с камер через WIFI 2,4 ггц подключение на WIFI регистратор или сразу в интернет.
Также позволяет подключить любые ONVIF IP WIFI видеокамеры и испльзовать устройство как шлюз для их подключения.
Поддерживает функцию беспроводного WIFI маршрутизатора
Может использоваться как усилитель сигнала или ретранслятора в составе комплекта беспроводного WIFI видеонаблюдения
Имеет функцию облегченного подключения видеокамер «matching code» протокол 1
На корпусе располагаются светодиоды показывающие состояние сети.
Модель увеличивает дальность подключения от видеокамер до регистратора на 30-40%. Легко подключается и настраивается.

Может работать в диапазоне температур от -15 до +40 градусов Цельсия.

 
Технические характеристики:
Поддержка: Wi-Fi IPC 2,4G
Питание: 12В 2А
Световая индикация: есть
Материал корпуса: ABS пластик
Цвет корпуса: белый
Диапазон температур: от -15 до +40 градусов Цельсия
Габариты: 74х31х186 мм

 
Комплект поставки:
Четырехканальный усилитель (репитер, ретранслятор) Wi-Fi сигнала для IP Wi-Fi комплектов видеонаблюдения AL-IPCRT-2 – 1 шт.
 Внимание! Адаптер в комплект не входит!
Гарантия – 12 месяцев

Написать отзыв

Ваше Имя:

Ваш отзыв:

Внимание: HTML не поддерживается! Используйте обычный текст.

Оценка: Плохо 

 

 

 

 

 Хорошо

Введите код, указанный на картинке:

Переключатель IPC LAN — это специальное устройство, которое обладает уникальными возможностями и находит широкое применение в различных сферах деятельности. Его основным назначением является коммутация сигналов между несколькими устройствами в локальной сети. Благодаря своим преимуществам, IPC LAN переключатель становится незаменимым инструментом для организации надежной и безопасной связи в сети.

Одним из основных преимуществ IPC LAN переключателя является его способность обеспечить высокоскоростную передачу данных. Благодаря использованию передовых технологий, переключатель обеспечивает стабильное и бесперебойное подключение к сети, что позволяет значительно повысить эффективность работы устройств. Благодаря этому, IPC LAN переключатели широко применяются в IT-системах, включая серверные комнаты, дата-центры, компьютерные классы и другие подобные объекты.

Еще одним значимым преимуществом IPC LAN переключателя является его возможность обеспечивать безопасность передачи данных. С помощью специальных механизмов и протоколов, переключатель обеспечивает шифрование и защиту информации, что позволяет предотвратить несанкционированный доступ к данным и снизить риск утечки конфиденциальной информации. Именно поэтому IPC LAN переключатели активно используются в банковской и финансовой сфере, государственных учреждениях, военных организациях и других инфраструктурных объектах, где безопасность данных играет решающую роль.

Таким образом, IPC LAN переключатели являются важным элементом системы связи и безопасности в сети. Благодаря своим преимуществам, они позволяют эффективно организовывать передачу данных и обеспечивать безопасность информации, что является особенно важным в условиях современного информационного общества.

Содержание

  1. Зачем нужен переключатель ipc lan:
  2. Удобство и эффективность
  3. Больше скорости и стабильности
  4. Повышение безопасности данных
  5. Оптимизация сетевого трафика

Зачем нужен переключатель ipc lan:

Переключатель IPC LAN (Local Area Network) представляет собой устройство, используемое для соединения компьютеров и других сетевых устройств внутри одной локальной сети. Он выполняет ряд важных функций, которые делают его необходимым компонентом в современных сетевых системах.

Одной из основных причин использования переключателя IPC LAN является управление трафиком в локальной сети. Переключатель способен анализировать пакеты данных, поступающие на его порты, и перенаправлять их только на нужные устройства. Таким образом, он помогает снизить нагрузку на сеть и повысить производительность системы.

Кроме того, переключатель IPC LAN обеспечивает безопасность сети и защиту от несанкционированного доступа. Он способен контролировать доступ к сети, фильтровать трафик и предотвращать атаки извне. Это особенно важно для организаций, где конфиденциальность данных является приоритетом.

Переключатель также позволяет создание виртуальных локальных сетей (VLAN), которые позволяют группировать устройства внутри сети на основе их функциональных характеристик или доступа к ресурсам. Это удобно, например, для разделения сети на отдельные отделы компании или различные уровни доступа пользователей.

Кроме того, переключатель IPC LAN обеспечивает высокую скорость передачи данных в сети. Он поддерживает гигабитные соединения и предоставляет возможность передавать большие объемы данных между устройствами без потери скорости.

В итоге, переключатель IPC LAN является неотъемлемой частью современных сетевых систем. Он помогает управлять трафиком, обеспечивает безопасность сети, позволяет создавать виртуальные локальные сети и обеспечивает высокую скорость передачи данных. Все это делает его незаменимым инструментом в области сетевых технологий.

Удобство и эффективность

Переключатель ipc lan обеспечивает значительное удобство и повышение эффективности в работе.

Одним из основных преимуществ является возможность управления несколькими компьютерами или устройствами с помощью единого переключателя. Это позволяет значительно сократить время, затрачиваемое на переключение между различными источниками сигнала, такими как мониторы, клавиатуры и мыши.

Кроме того, переключатель ipc lan обеспечивает удобство в организации и структурировании рабочего пространства. С помощью одного устройства можно подключить несколько компьютеров или устройств и легко переключаться между ними, не выходя из своего рабочего места. Это особенно актуально в случае работы с несколькими системами или проектами, где необходимо мгновенно переключаться между различными задачами или приложениями.

Кроме облегчения работы, переключатель ipc lan также может увеличить производительность и эффективность труда. Благодаря возможности одновременного управления несколькими компьютерами, пользователь может одновременно обрабатывать различные задачи и увеличить свою продуктивность.

Таким образом, использование переключателя ipc lan обеспечивает значительные преимущества в удобстве работы и повышении эффективности. Он позволяет управлять несколькими компьютерами или устройствами с помощью одного устройства, облегчает организацию рабочего пространства и повышает производительность труда.

Больше скорости и стабильности

Дополнительная скорость и стабильность достигаются благодаря технологии коммутации на уровне канала (Layer 2), которую использует переключатель. Это позволяет ускорить процесс передачи данных и обеспечить надежную и стабильную связь между устройствами в сети.

Переключатель IPC LAN также обладает различными функциями, способствующими повышению скорости и стабильности работы сети. Он поддерживает технологию Quality of Service (QoS), которая позволяет управлять приоритетами передачи данных и предоставляет возможность оптимизировать работу сети под различные требования приложений. Кроме того, переключатель обеспечивает автоматическую настройку параметров соединения и оптимальное управление трафиком, что позволяет достичь оптимальной производительности сети.

Преимущества Область применения
Повышение скорости передачи данных Домашние, офисные и корпоративные сети
Обеспечение стабильной связи Индустриальные сети и системы безопасности
Улучшение производительности сети Торговые точки и сервисные центры

Повышение безопасности данных

С помощью переключателя IPC LAN можно ограничить доступ к сети только определенным устройствам или пользователям. Это позволяет создать закрытую сеть, в которой решающее слово о доступе имеет администратор, что гарантирует безопасность и конфиденциальность данных.

Встроенные механизмы аутентификации и авторизации позволяют контролировать доступ к ресурсам сети на основе различных параметров: IP-адреса, MAC-адреса, уровня привилегий пользователя и других. Таким образом, переключатель IPC LAN позволяет установить полный контроль над сетью и предотвратить несанкционированный доступ.

Еще одним важным моментом является защита от атак хакеров и злоумышленников. Переключатель обнаруживает и блокирует попытки вторжения и атаки типа DDoS, а также предоставляет возможность контролировать и управлять трафиком в сети.

Также следует отметить, что переключатель IPC LAN поддерживает протоколы шифрования данных, такие как SSL/TLS, что позволяет обеспечить безопасную передачу информации по сети.

Преимущества Область применения
Повышение безопасности данных Корпоративные сети
Контроль доступа к ресурсам Государственные организации
Защита от атак и вторжений Банки и финансовые учреждения
Шифрование данных Медицинские учреждения

Оптимизация сетевого трафика

Использование переключателя IPC LAN позволяет значительно оптимизировать сетевой трафик. Благодаря этому устройству можно снизить нагрузку на локальную сеть и повысить ее производительность. Рассмотрим основные преимущества переключателя IPC LAN в контексте оптимизации сетевого трафика.

Управление трафиком

Переключатель IPC LAN позволяет оптимизировать передачу данных в локальной сети. Он позволяет управлять и разгружать трафик на основе определенных параметров, таких как приоритеты, порты, адреса и т. д. Это позволяет предоставить более стабильное и эффективное соединение для всех устройств в сети.

Увеличение пропускной способности

Переключатель IPC LAN может помочь увеличить пропускную способность сети. За счет управления трафиком и разделения его на отдельные потоки, переключатель может обеспечить максимальное использование доступной пропускной способности. Это особенно полезно для коммерческих сетей с большим количеством подключенных устройств и интенсивным трафиком.

Снижение задержек

Переключатель IPC LAN позволяет снизить задержки в сети. Благодаря управлению трафиком и оптимизации передачи данных, переключатель может значительно уменьшить время ожидания и задержки, что повышает производительность сети и улучшает пользовательский опыт.

Область применения

Переключатель IPC LAN может быть использован в различных сферах, где важна оптимизация сетевого трафика. Например, он может быть использован в корпоративных сетях для повышения производительности рабочих станций, в системах видеонаблюдения для обеспечения более стабильной передачи видеоданных, а также в сетях гостиниц и кафе для обеспечения высокоскоростного интернета для посетителей.

IPC – это, понятие, связанное с операционной системой, но есть смысл разобраться в том, что это такое, более подробно.

Этим и займемся.

Cодержание:

Теоретическая страничка

Каждый хоть немного представляет себе работу обычной операционной системы.

А теперь представьте, что привычная для нас работа нашей ОС превратилась в своего злого двойника, который не просто не похож на свой оригинал, но еще и выполняет все свои обязанности.

Рис. 1. Если хотя бы одна шестерня перестанет крутиться, то вся система перестанет работать справно

Рис. 1. Если хотя бы одна шестерня перестанет крутиться, то вся система перестанет работать справно

Такое развитие событий вполне могло происходить, не будь встроен в нашу систему IPC.

 Если хорошо изучить вопрос о зависимости программ друг от друга, то можно понять, что приложений, не зависящих друг от друга, довольно малое количество. 

Это вполне логично, так как для высокого коэффициента работы любой системы просто необходима передача информации между составляющими.

Рис. 2. Если не будет передачи актуальных данных, то все процессы и вычисления будут неправильны

Рис. 2. Если не будет передачи актуальных данных, то все процессы и вычисления будут неправильны

 Например, когда у человека в работе возникает вопрос, который зависит от его работы, он берет нужную ему информацию с какого-то источника, будь то человек или любой другой источник. 

Хоть «ядро» нашего компьютера запрограммировано искать информацию в каком-то определенном источнике, принцип роботы по сути тот же.

Рис. 3. Активный поиск информации

Рис. 3. Активный поиск информации

к содержанию ↑

Принцип работы

Для правильного функционирования системы приложениям в обязательном порядке нужна беспрерывная коммуникация между большинством процессов, либо они сами обязаны предоставлять нужную информацию по требованию процессов.

Именно из-за такой потребности в постоянном обмене информацией с приложениями, в операционную систему встраивается не малое количество механизмов, которые отвечают за поддерживание постоянного и безошибочного потока информации.

Такие механизмы или программы носят название «межпроцессорное взаимодействие» – с перевода Inter-process Communication (IPC).

Важно: IPC – это механизм или программа, которая обеспечивает стабильный взаимный обмен данными у потоков информации процесса/процессоров. 

Работает данная программа непосредственно в самой операционной системе, и является основой для передачи любой информации.

Рис. 4. Потоки информации

Рис. 4. Потоки информации

к содержанию ↑

Примеры работы IPC

Еще до развития сетевых технологий актуальным стал вопрос о необходимости в передаче информации от процессора к процессору, работающих на одном компьютере.

Существует просто огромное количество примеров, когда данная программа была использована в довольно примитивных, на сегодняшнее время, механизмах.

 Рассмотрим один из ключевых примеров, который наглядно изобразит всю важность IPC даже в очень простых и ранних системах, что уж говорить о его потребности на сегодняшний день. 

Более старые версии современного IPC присутствовали еще в MS-DOS.

В процессе развития технологий, когда сетевые технологии и системы только начинали свой долгий путь развития, стала появляться потребность в механизмах создающих взаимосвязь процессоров, которые реализуется на разных компьютерах, состоящих в одной сети.

В то время решение данного вопроса было очень проблематичным.

Дело в том, что такая связь могла проводить обмен данными, если только их платформы или операционные системы относились к одинаковым моделям.

В современной сети данные проблемы уже давно никого не беспокоят. Вот вам краткий наглядный пример работы в таких сетях.

 Когда вы совершаете любой выход в Интернет, ваш браузер – один процесс (программа) – входит во взаимосвязь с web-сервером – другим процессором (программой). 

Данные процессы выполняются на двух разных компьютерах, в двух разных местах:

  • браузер у вас в системе;
  • сервер – в любой другой системе или абсолютно в любом месте.

И вы совершенно не задаетесь вопросом, какая у серверов операционная система.

Затрагивая общий принцип работы таких форм как IPC, и не только таких, как она, используется в основном концепция «клиент-сервер».

Понятно, что «клиент» — это приложение, которое запрашивает информацию, а запрос информации идет уже к «серверу» — приложению которое предоставляет нужную информацию.

Рис. 5. Принцип действия сети

Рис. 5. Принцип действия сети

к содержанию ↑

Общее положение

Рассмотрев все возможности и примеры использования межпроцессорного взаимодействия, вы сами можете убедиться в том, что данное обеспечение просто необходимо для работы операционной системы, к которой мы так привыкли.

Ниже будут перечислены области взаимодействия IPC, как в одной системе, так и в многопользовательской сети.

На сегодняшний день требования к операционным системам увеличивается пропорционально с ростом уровня технологий.

Данный рост вызван тем, что каждый день на наши операционные системы выходит все больше и больше каких-то дополнений которые в свою очередь улучшают характеристики нашего компьютера. 

Рис. 6. Чем выше уровень технологии, тем больше на него спрос

Рис. 6. Чем выше уровень технологии, тем больше на него спрос

Но мало кто знает, что современные операционные системы, которые поддерживают многозадачность своей системы, должны иметь в себе такие программы или механизмы, которые обеспечивают синхронизацию процессоров без взаимоисключений и с минимальными задержками.

Данные критерии имеют очень высокую важность в роботе нашего компьютера.  

Если говорить об идеальной многозадачной системе, то все процессы, выполняющееся в ней, должны быть независимы друг от друга, то есть быть асинхронными.

В реальности такая «идеальная» система невозможна, так как рано или поздно возникают ситуации, когда процессам необходим доступ к некоторым общим ресурсам.

Для получения данной возможности, на уровне операционной системы водятся специальные ресурсы, которые предоставляют им данную возможность.

Но тут, конечно же, не без исключений. При выполнении параллельных процессов могут возникать проблемы.

Например: при совместной работе, каждый процесс, обращающийся к разделяемым данным, делает невозможным для всех остальных процессов одновременное обращение к этим данным – данный феномен называется взаимоисключением. 

к содержанию ↑

Три основных вида IPC

  • Локальный

Этот вид IPC полностью привязан к своему компьютеру, работа осуществляется только в пределах одной системы (компьютера).

Он является основным и обязательным для работы процессов обеспечивающих передачу данных по системе, а именно для каналов, очередей сообщений и разделяемой памяти.

Из-за своей ограниченности, в плане коммуникационного пространства, данные IPC, могут работать лишь в пределах своей локальной системы.

Но благодаря такому ограничению для них могут использоваться более быстрые и простые интерфейсы.

  • Удаленный

Чтобы обеспечить взаимодействие в пределах системы с одним процессором или между программами на различных процессорах, соединенных через одну сеть, используются специальные механизмы, которые предоставляют удаленное IPC.

  • Высокоуровневый

Последний и, пожалуй, один из самых тяжелых в использовании вид IPC – высокоуровневый.

Данный вид представляет собой пакет программного обеспечения.

Этот пакет данных создает так называемый «промежуточный слой», который предоставляет возможность общения между системной платформой и приложением.

к содержанию ↑

Обеспечение корректной работы обмена данных

Вместе со своей основной функцией, обеспечения взаимодействий процессоров, средства ICP подключены к решению проблем, возникающих при организации параллельных вычислений.

Вот примеры их области деятельности:

1Конкурентные ситуации между процессами. Можем представить себе идеальную систему, в которой проходит лишь одно действие, это считывание данных с одного файла. Данная система находиться в полном спокойствии до тех пор, пока одному из процессов не понадобиться изменить данный файл. В таком случае между процессами возникает «конкурентная ситуация». Это можно сравнить с камешком в каком-то механизме.

2Очередь последовательной записи информации. Для того чтобы предоставить пользователям возможность быстрой и надежной записи данных, создаются специальные очереди. Я думаю вам известно, что такое очередь. Но на самом деле создается не одна, а две очереди. Отличаются данные очереди от настоящих только тем, что одна из них используется только для чтения, а другая уже позволяет нам записывать нужную информацию. Данная очередь создается в целях предотвращения тупиков, которые мы обсудим немного ниже.

Рис. 7. Очередь процессов для записи данных

Рис. 7. Очередь процессов для записи данных

А что насчет тех процессов, которые требуют неотъемлемой скорости своего решения?

Раньше, когда создавали упомянутые выше очереди, возникла проблема, при которой некоторые процессы могли подолгу ждать своей очереди, в то время, когда этот процесс был неотлагаемым.

 Через некоторое время была придуманная идея создания очередей, которые осуществляли такой распорядок процессов, которые не мешали основным или более важным процессам.

Также, существует термин, который и в теории, и на практике обоснован своим названием – это тупик.

Его особенность в том, что хоть процессы уже освободились, они не могут переходить на следующую ступень для завершения процесса.

 Если проще объяснить, то на практике получается следующее: у нас есть процесс X, когда он получает доступ к файлу X, он начинает ждать, когда освободиться файл Y, для завершения своей роботы. Но вместе с ними процесс Y, получив доступ к файлу Y, ждет, пока освободится файл X.

Данные процессы замыкаются между собой в данный момент и ждут взаимного освобождения файла, при этом, не освобождая свой файл.

Такого «замыкания» можно избежать, если пользователь позаботиться о том, чтобы ресурсы были пронумерованы.

Также они должны быть построены строго в восходящем порядке номеров.

Рис. 8. Наглядный «тупик»

Рис. 8. Наглядный «тупик»

к содержанию ↑

Современные примеры работы ICP

Чтобы наглядно изобразить взаимодействие программ на одном компьютере, существует знакомый нам ресурс – буфер обмена.

Не удивляйтесь, наш старый добрый буфер обмена также является одной из механизмов IPC.

А принцип его работы заключен в следующем: выделенный вами текст из текстового редактора после выделения помещается в электронную таблицу или в ту же программу для верстки.

Вы сами можете убедиться, что следы механизмов межпроцессорного взаимодействия можно обнаружить даже в мелких деталях.

Было множество попыток создания программ или механизмов, которые обеспечили бы быструю и эффективную передачу информации между процессорами.

Хоть было создано довольно много подобных средств, множество из них до сих пор сохранились или послужили в качестве основы для будущих моделей.

Стоит заметить, что множество из них были реализованы в Windows 9x, а еще большее количество в Windows NT/2000.

Хотелось бы обратить ваше внимание на тот факт, что существование универсального способа обмена данными, который был бы полезен во всех ситуациях, просто невозможно. 

В какую бы среду не попал пользователь – все ровно какой-то из способов будет предпочтительней, хоть большой разницы в нормальных условиях, между ними и нет.

Но можем вас уверить в том, что после этой статьи вас больше не затруднит ориентирование в ресурсах, связанных с IPC или выбор того или иного метода роботы, взвешивая все плюсы и минусы.

Для тех людей, которые думают, что развития в данной технологии не предвещается, есть один факт, который изменит ваше мнение.

Программы и механизмы, которые связанны с IPC, напрямую связанны с операционной системой. То есть, эффективность и надежность данных ресурсов будет возрастать по мере улучшения роботы операционной системы.

Product Overview

• wireless relay function;
• IPC router function
• Wireless pairing to wireless NVR;
• Network cable pair code to wireless NVR;
• Network cable pair code with network port wireless IPC;
• Wireless pairing with pure wireless IPC
• NVR wireless connection status indicator
• IPC wireless connection status indicator

Technical Parameters

IPC router

model

R4S-3

WIFI

802.11b/g/n 2.4G Single antenna

Maximum number of belt drives

4 wireless IPCs

Number of indicators

5 LED indicators, 4 of which indicate the IPC signal status, and 1 of which indicates the NVR connection status

Interface Type

1 x RJ45 100Mbits Network port

Code with IPC, transmit video

1 x Tail button

One-click code pairing, reset

1 x 12V

Powering this device

Lightning protection level

Standard IEC61000-4-5

size

74*31*186

weight

80

Amazing Electron IPC Router

Простой роутер, реализующий request-response паттерн при работе с Electron IPC.

Установка и зависимости

Так как он пока ещё не выложен в репозитории пакетного менеджера, то установка происходит через указание репозитория в Git. Идём в package.json, и в секцию dependencies прописываем следующее

// Если работа с гитом осуществляется через SSH
"amazing-electron-ipc-router": "git+ssh://git@git.amazingcat.net:AmazingTime/amazing-electron-ipc-router.git"

// .. или, если работаем через HTTPS
"amazing-electron-ipc-router": "git+https://git@git.amazingcat.net/AmazingTime/amazing-electron-ipc-router.git"

После этого делаем npm install и всё хорошо.
Данный модуль содержит у себя в зависимостях пакет uuid.

Простые примеры

Простой пример работы с IPC-роутером для общего понимания.

Main-процесс

// Получаем стандартный IPC в Electron
const { ipcMain } = require('electron');

// Подгружаем наш IPCRouter и создаём его инстанс
const IPCRouter = require('amazing-electron-ipc-router');

// Второй аргумент не обязателен - при его отсутствии будет присовен идентификатор по умолчанию
// Для обращения к нему, в эндпоинтах следует не указывать routerId
const ipc = new IPCRouter(ipcMain, 'sampleRouterId');

// Устанавливаем хэндлер для эндпойнта
// Стоит отметить, что функция обработчика может так же быть AsyncFunction или Promise (что, в целом, одно и то же)
ipc.serve('misc/say-hi', request => {

    // Производим какие-то операции над запросом
    let greeting = `Hello, ${request.packet.body.name}!`;

    // Возвращаем ответ
    request.send(200, { greeting });

});

// Роутер может работать в обе стороны, то есть, как renderer, так и main-процессы могут обслуживать роуты и совершать запросы.
// Это пример функции, выполняющей запрос, который ожидает что-то получить в ответ
const sendCatFace = async () => {

    const result = await ipc.request('catface:sampleRouterId', { catface: '(,,◕ ⋏ ◕,,)' })
    console.log(result.body.message); // выведет: Thank you for this pretty catface!

};

// А вот так можно сделать запрос, который не ожидает ничего получить в ответ
ipc.emit('playback/control:sampleRouterId', { action: 'NextSong' });

Renderer-процесс

// Получаем стандартный IPC в Electron
const { ipcRenderer } = require('electron');

// Подгружаем наш IPC и создаём его инстанс
const IPCRouter = require('amazing-electron-ipc-router');

// Второй аргумент не обязателен - при его отсутствии будет присовен идентификатор по умолчанию
// Для обращения к нему, в эндпоинтах следует не указывать routerId
const ipc = new IPCRouter(ipcRenderer, 'sampleRouterId');

// Обслуживаем эндпойнт, который принимаешь кошачьи морды с main-процесса
ipc.serve('catface', request => {

    // Выводим морду в консоль
    console.log(request.packet.body.catface);

    // Возвращаем ответ
    request.send(200, { message: 'Thank you for this pretty catface!' });

});

// Функция, тыркающая эндпойнт в main-процессе
const sayHi = async name => {

    const result = await ipc.request('misc/say-hi:sampleRouterId', { name: 'Mark' })
    console.log(result.body); // выведет: Hello, Mark!

};

Как работает внутри?

Очень муторно и костыльно, но фигли делать, не хттп же сервер на локалхосте поднимать, в самом деле? Вкратце, модуль организует связь по четырём событиям (они выполняют роль, как бы, каналов / соединений):

  • ipc-req:main — получение входящих запросов от Renderer-процесса
  • ipc-res:main — получение ответов на запросы от Renderer-процесса
  • ipc-req:renderer — получение входящих запросов от Main-процесса
  • ipc-res:renderer — получение ответов на запросы от Main-процесса

Пакеты являются следующими структурами:

<Request> {

    // Заголовок запроса
    _header: {

        // Уникальный идентификатор пакета (UUIDv4)
        id: String<UUID>,

        // IPC endpoint на который отправляется этот запрос
        endpoint: String,

    },

    // Тело (данные) запроса
    body: Object,

    // Функция отправки ответа
    send: Function

}

<Response> {

    // Заголовок ответа
    _header: {

        // Уникальный идентификатор пакета, на который мы отвечаем (UUIDv4)
        id: String<UUID>,

        // Статус-код ответа, в случае истечения таймаута ответа, он равен -1
        code: Number

    },

    // Тело (данные) ответа
    body: Object

}

Описание API

Здесь приведено описание основных методов. Больше информации можно найти в JSDoc в самом коде.

IPCRouter.constructor(ipc)

Конструктор класса, принимает на вход electron.ipcMain или electron.ipcRenderer.
Пример:

const { ipcMain } = require('electron');
const IPC = require('amazing-electron-ipc-router');
const ipc = new IPC(ipcMain);

IPCRouter.setWebContents(wc)

Позволяет подключить к роутеру WebContents IPC, что даёт возможность отправлять запросы из main-процесса в renderer.
Вызывается только в main-процессе.
Пример:

const ipc = new IPC(ipcMain);
const window = new BrowserWindow(..);
ipc.setWebContents(window.webContents);

IPCRouter.serve(endpoint, handler, [override = false])

Устанавливает обработчик для эндпойнта. В качестве первого аргумента, принимает название эндпойнта (тип String), а в качестве обработчика может принимать Function (обычные функции) или AsyncFunction (async-функции и Native Promises).

Параметр override отвечает за возможность перезаписи существующего обработчика. При стандартном значении (false), при попытке повторно установить обработчик для одного эндпойнта, функция выкинет ошибку. Если же, выставить параметр override в true, то повторный вызов функции переопределит обработчик на тот, который был передан при последнем вызове.

Пример:

ipc.serve('test', async request => { ... });  // => true
ipc.serve('test', request => { ... })         // => throws Error, потому что override = false
ipc.serve('test', request => { ... }, true);  // => true, потому что override = true

IPCRouter.emit(endpoint, body)

Отправляет запрос, не требующий ответа.
Принимает на вход первым аргументом имя эндпойнта (String), вторым — тело запроса (Object). Обратите внимание, что тело запроса является необходимым параметром, поэтому даже если оно пустое, то это нужно явно указать (см. пример).

Пример:

ipc.emit('test', { test: '1234' });  // => true, присутствуют данные в теле запроса
ipc.emit('test', {});               // => true, тело запроса пустое
ipc.emit('test');                    // => throws Error, т.к. тело запроса явно не указано

async IPCRouter.request(endpoint, body, [timeout = 30000])

Отправляет запрос, ожидая получить на него ответ в течении заданного времени (парметр timeout).
Принимает на вход первым аргументом имя эндпойнта (String), вторым — тело запроса (Object, обратите внимание, что особенность с пустым телом запроса, описанная для IPC.emit здесь так же справедлива), третьим — таймаут ожидания ответа в миллисекундах (Number, по-дефолту, равен 30000 мс, т.е. 30 секундам).

Для отключения таймаута, необходимо третьим аргументом передать ноль (Number(0)).

Эта функция является AsyncFunction, следовательно её следует использовать в конструкциях async-await или в Promise-chain. Она возвращает объект формата Response (описание структуры которого есть выше).
Пример:

async () => {

    // Запрашиваем морду кота
    const freshCatFace = await ipc.request('catface/get', { emotion: 'smile' });

    // Проверяем запрос на таймаут
    if (freshCatFace.code === -1) console.error('Request timed out, no catface for today :( ');

    // Будем считать, что код 200 означает успешное выполнение запроса
    else if (freshCatFace.code === 200) console.log('Just look at this!', freshCatFace.body.packet.face);

    // Сюда свалятся другие ошибки / статусы
    else console.error(`Error ocurred during catface fetching, #${freshCatFace.code}`);
};

Request.send([code], body)

Эта функция содержится в объекте Request, и позволяет на него чёта ответить.

Принимает на вход комбинацию статус-кода + тела ответа, или просто тела ответа (см. пример). В случае, если статус-код не указан, по-дефолту отправляется 200.

Возвращает Boolean(true), если ответ бы отправлен.

Пример:

ipc.serve('test', request => {

  request.send({ meow: 'purr' }); // => true, статус-код 200
  // или
  request.send(200, { meow: 'purr' }); // => true, статус-код 200
  // или
  request.send(400, { meow: 'woof' }); // => true, статус-код 400
  // или
  request.send(200); // => throw Error, потому что не указано тело ответа

});

Контрибьют, лицензия, ту-ду и прочее

Да а чёрт его знает, что здесь писать.

  • Ip адреса beeline для настройки роутера
  • Ipad не работает с роутером
  • Ip адрес своего роутера zyxel keenetic
  • Ip адрес это адрес компьютера или роутера
  • Ip на роутере один а мой другой