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 не будет опубликован. Обязательные поля помечены *