TCPClient Внешняя компонента(Native API) + Пример работы с Asterisk




TCP client с поддержкой синхронных/асинхронных сокетов + пример реализации.

TCP client с поддержкой синхронных/асинхронных сокетов, получения данных в отдельном потоке и отправка их 1с в виде событий.

 

Свойства:

  • _PID/_ИДПроцесса(только чтение) — ид текущего процесса
  • _TID/_ИДПотока(только чтение) — ид текущего потока
  • _Loging/_ВестиЛог(чтение и запись) — ведение лога
  • _SendingEvents/_ОтправлятьСобытия(чтение и запись) — отправлять внешние события 1с
  • _EventBufferDepth/_РазмерОчередиСообщений(чтение и запись) — размер очереди обработки сообщений, если сообщение приходит в заполненную очередь, оно удаляется
  • _LogFile/_ЛогФайл(чтение и запись) — имя файла лога
  • RecvThID/ПотокПрослушивания(только чтение) ид потока прослушки(0 если потока не создан)
  • Server/Сервер(только чтение) — IP сервера к которому подключены
  • Port/Порт(только чтение) — порт подключения
  • Asynchronus/Асинхронный(только чтение) — флаг истина: асинхронный, ложь: синхронный
  • Connected/Подключен(только чтение) — состояние подключения
  • RecvMode/ПолучениеВОтдельномПотоке(только чтение) — флаг истина: в потоке, получение в виде внеш. событий, ложь: получение с помощью метода Получить().

Методы:

  • Строка _Type/_Тип(любое значение) — возвращает тип переданного значения
  • Строка _Properties/_Свойства(0) — список свойств компоненты
  • Строка _Methods/_Методы(0) — список методов компоненты
  • Булево _ClearLog/_ОчиститьЛог(0) — очистка лог-файла
  • Строка _GetLastError/_ПоследнаяОшибка(0) — представление последней ошибки, GetLastError + GetErrorDescription
  • Булево Connect/Подключиться(IP:строка,Порт:число,Асинфронный:булево,отдельныйПоток:булево) — подключение к сокету
  • Булево Disconnect/Отключиться(0) отключение
  • Число(целое) Send/Послать(данные: строка) — отправка строки в сокет, возвращает кол-во отправленных байт(-1 при ошибке)
  • Строка Recv/Получить(0) — получение строки из сокета
  • Булево Delay/Пауза(милисек: число) — приостанавливает поток на указанное время(мс)

Обмен сообщения происходит в ASCII + перекодировка для 1с.

19 Comments

  1. Жолтокнижниг

    а какого никто комментов не пишет, я знаю что есть косяки, да я выпил %)

    но нужны пожелания

    Reply ↓
  2. stilet

    Интересно, а компонента будет работать с управляемыми формами?

    Reply ↓
  3. Жолтокнижниг

    Точно не знаю, но почему нет, главное чтоб не веб-клиент

    Reply ↓
  4. nytlenc

    Вещь очень нужная! Сделайте поддержку x64 серверов! Чтобы компоненту можно было подключить на сервере и производить подключение с помощью выполнения на стороне сервера регламентного задания без участия пользователя. Тогда ей просто цены не будет!!!

    Reply ↓
  5. Жолтокнижниг

    (4) nytlenc, Нет мотивации на выполнение вашего пожелания. Возможно будет новый проект по интеграции с астериск, но там сервер x32. А просто так тратить время, такой возможности у меня нет. Так что увы.

    Reply ↓
  6. Жолтокнижниг

    (4) nytlenc, Могу исходники дать, но с условием, что доработка появится на ИС.

    Reply ↓
  7. A-tomic

    А что вот такие сообщения могут значить — «TCPClient : Recv: Recived mode: inThread.»?

    Reply ↓
  8. fd13

    Версию под Х64 я даже приобрел бы для личных нужд…

    Reply ↓
  9. legzzi

    как с вами связаться? требуется внедрить в УТ10.3

    Reply ↓
  10. saa@kuzov.org

    (8) fd13, скажите, а какой сценарий ее использования может быть на windows x64? Для меня основная ценность в генерации внешних событий, что на сервере не работает, а клиент x64 только под linux.

    Reply ↓
  11. unduty

    Как удалось сделать асинхронный режим? как удалось победить ошибку «Использование синхронных методов на клиенте запрещено!» ?

    Reply ↓
  12. Жолтокнижниг

    (11) unduty, Асинхронно работает сама компонента (в несколько потоков) и пушит события в 1с. Это никак не относится к асинхронности самой 1с

    Reply ↓
  13. kuzz

    Добрый день! Объясните пожалуйста в двух словах как пользоваться?

    Reply ↓
  14. Жолтокнижниг

    (13) kuzz, Это обработка пример, ее основное назначение показать, как пользоваться компонентой, а также анализ событий/действий Астериска.

    На закладке настройки заполняем параметры подключения к астериску, нажимаем подключиться. А дальше по закладкам смотрим инфу, нажимаем позвонить(указав/выбрав нужный номер) при желании.

    Reply ↓
  15. SlavaVNL

    (14) исходный код открыт?

    Reply ↓
  16. Жолтокнижниг

    (15) SlavaVNL, В файлах есть исходники

    Reply ↓
  17. mvgfirst

    А скажите, только у меня 1С валится при попытке ее подключить?

    Причем валится только x64 версия клиента.

    Я понимаю что компонента создавалась еще до выпуска x64-версии.

    Но может есть кто-то кто пересобрал ее так что бы не валилась 1С?

    Reply ↓
  18. Жолтокнижниг

    (17) У меня нет планов дорабатывать, так что извините.

    Reply ↓
  19. mixperm

    (18) Зачетная штука! Неделю искал!!!

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *