В этом разделе перечислены свойства и методы плагина PluginNetwork

Назначение

Плагин PluginNetwork предназначен для работы с TCP/UDP сокетами и именованными каналами в контексте JavaScript.


Протокол обмена jCjS
Для обмена данными используется протокол jCjS, гарантирующий неизменную доставку JS объектов между постами jCjS, находящихся на разных хостах.
ВНИМАНИЕ!!! Велика вероятность, что протокол jCjS в программном обеспечении с версией ниже v.2.6.2.449 не совместим с текущим. Рекомендуется обновить программное обеспечение.

Описание:
В протоколе сначала передается размер всей посылки, затем одним байтом булевый флаг компрессора и версия протокола. В финале само сообщение.
При приеме этой посылки, приемная сторона анализирует поля размера, компрессора, версии и начинает принимать все сообщение, пока оно не будет собрано или пока не произойдет таймаут.
ВНИМАНИЕ!!! В режиме raw отключается режим протокола jCjS и отсутствует сжатие compressor, доступно только встроенное шифрование crypt при protoSelf больше или равно 1

Начиная с версии v.2.8.8.852 в протокол добавлена версионность. С автоматическим переключением на совместимую версию протокола с удаленной стороной.

Версии протокола и его функционал. Текущая версия протокола 1:

  • -0. jCjS v.2.6.2.449 и старше
              - Автоматическое опознование сжатых посылок
    1. jCjS v.2.8.8.851 и старше
      - Добавлено шифрование
      - Контрольная сумма

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

    Список общих свойств влияющих на протокол jCjS

    Список общих свойств для подсчета данных


    Плагин PluginNetwork рекомендуется использовать в следующих случаях

      Для обмена данными с удаленным ПО - JCJSTcpServer, JCJSTcpClient, JCJSUdpRecv.
      Для межпроцессового взаимодействия в рамках локального хоста - JCJSLocalServer, JCJSLocalClient.

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

    Примеры использования находятся в каталоге stuff/tests/pluginNetwork


    Использование

    Перед использованием плагина, его необходимо подключить командой

    // Загрузить плагин и присвоить его объект переменной
    var pluginNetwork = post.loadPlugin('PluginNetwork');
    

    Свойства

    не имеет свойств

    Методы

    objPlugin pluginNetwork.install(scriptEngine) Функция

    установка в JS конструкторов объектов
    ВНИМАНИЕ! начиная с версии svn.r959 функцию .install() вызывать нет необходимости, ее вызов происходит в функции post.loadPlugin()

    // Загрузить плагин и Установить в JS конструторы объектов
    var plg = post.loadPlugin('PluginNetwork').install(scriptEngine);
    

    после выполнения этого метода, для создания экземпляров объектов используется оператор new

    // Создать объект, к свойствам и
    // методам которого можно обращаться в стиле Qt
    var udpResv = new JCJSUdpRecv();
    

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

    try{String(JCJSUdpRecv)}catch(e){
        post.loadPlugin('PluginNetwork').install(scriptEngine);
    }
    // Создать объект, к свойствам и
    // методам которого можно обращаться в стиле Qt
    var udpResv = new JCJSUdpRecv();
    

    String pluginNetwork.objects() Функция

    Вывести список всех поддерживаемых объектов

    var pluginNetwork = post.loadPlugin('PluginNetwork');
    var allSupportObjects = pluginNetwork.objects();
    // переменной allSupportObjects присвоится строка
    // 'JCJSLocalServer, JCJSLocalClient, JCJSTcpServer, JCJSTcpClient, JCJSUdpRecv'
    

    Описание объектов

    В этом разделе описано назначение объектов плагина PluginNetwork

  • Плагины

  • PluginNetwork

    1. JCJSUdpRecv - для работы поста jCjS в качестве клиента/сервера UDP
    2. JCJSTcpServer - для работы поста jCjS в качестве сервера TCP
    3. JCJSTcpClient - для работы поста jCjS в качестве клиента TCP
    4. JCJSLocalServer - для работы поста jCjS в качестве сервера именованного канала
    5. JCJSLocalClient - для работы поста jCjS в качестве клиента именованного канала
  • Описание объектов