В этом разделе перечислены свойства и методы плагина 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:
Все представленные объекты плагина PluginNetwork поддерживают обмен по протоколу jCjS и содержат необходимые свойства для управления протоколом
Список общих свойств влияющих на протокол jCjS
Плагин PluginNetwork рекомендуется использовать в следующих случаях
Для локального обмена данными между постами в рамках одного процесса 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