![]() |
|
Внешнее событие компоненты на сервере | ☑ | ||
---|---|---|---|---|
0
АЛьФ
03.05.24
✎
11:38
|
Нужно из внешней компоненты дернуть сервер "восьмерки". Известно, что внешние события работают только на клиенте.
Как быть? Нужен простой пример кода. |
|||
1
Garykom
03.05.24
✎
11:39
|
Периодическая проверка по таймауту
Или публикация http-сервиса и дергание его из ВК |
|||
2
АгентБезопасной Нацио
03.05.24
✎
11:41
|
http тут (имхо) будет самым простым решением.
|
|||
3
Garykom
03.05.24
✎
11:43
|
С точки зрения серверных процессов любое длительное ожидание события от ВК - зло
Если возможно надо переходить на сервисы Если невозможно (время реакции) то длительное фоновое с циклом, обязательно предусмотреть завершение и возобновление |
|||
4
АЛьФ
03.05.24
✎
11:43
|
2(1)(2) Я такие советы в поисковике встречал. Поэтому дописал: "нужен простой пример кода".
|
|||
5
АЛьФ
03.05.24
✎
11:45
|
2(3) Это скорее не длительно ожидание, а постоянная готовность принять событие, например, от датчика какого-то.
|
|||
6
H A D G E H O G s
03.05.24
✎
11:47
|
(0) Запускай компоненту на сервере, в ней реализуй метод Инициировать(ОбщийМодуль), сохраняй ОбщийМодуль в переменной типа OleVariant, в отдельном потоке дергай метод ОбщегоМодуля
|
|||
7
H A D G E H O G s
03.05.24
✎
11:48
|
Не забывай про CoInitialize
|
|||
8
АЛьФ
03.05.24
✎
11:49
|
2(6) О! Это мысль. Спасибо. А примера кода нет?
|
|||
9
H A D G E H O G s
03.05.24
✎
11:55
|
(8) Нет. Это просто мысль. Я не пробовал запускать процедуру ОМ в отдельном потоке.
|
|||
10
H A D G E H O G s
03.05.24
✎
11:55
|
Или пробовал, но это было так давно, что я забыл.
|
|||
11
Garykom
03.05.24
✎
11:58
|
(5) >постоянная готовность принять событие
это цикл простой и банальный цикл проверки "событие есть?" |
|||
12
АЛьФ
03.05.24
✎
12:04
|
2(11) Да, цикл в момент простоя. Может я неверно выразился. Мне нужно, чтобы этот цикл был в компоненте. а 1С обрабатывала уже готовое событие. В принципе, направление в (6) мне нравится, буду копать в эту сторону.
2(9) Жаль. Буду копать сам. |
|||
13
H A D G E H O G s
03.05.24
✎
12:10
|
Если не прокатит с ОМ - тогда можно попробовать с
ДобавитьОбработчик() на стороне 1С и реализацию интерфейса IConnectionPointContainer на стороне компоненты https://www.rsdn.org/article/mfc/connpts.xml Опять таки, я это пробовал давно, это работало, но я уже ничего не помню по ньюансам. |
|||
14
Garykom
03.05.24
✎
12:13
|
(12) >нужно, чтобы этот цикл был в компоненте. а 1С обрабатывала уже готовое событие
штатно такого кроме http или веб-сервисов нет ВнешнееСобытие от ВК &НаСервере исключая разные хаки |
|||
15
Garykom
03.05.24
✎
12:15
|
(13) это костыль-хак
примерно как клиента 1С запустить на сервере (упрощенного без лишних обработчиков и форм/интерфейса) и в нем ВК и ловить внешнее событие, дергая уже из клиента сервер 1С |
|||
16
H A D G E H O G s
03.05.24
✎
12:16
|
(15) Егор, не забывайте, что мы с вами не общаемся и вы пишите в пустоту.
|
|||
17
Garykom
03.05.24
✎
12:19
|
(16) Пустоту, в которую некто отвечает? :)
|
|||
18
Garykom
03.05.24
✎
13:11
|
С точки зрения решения задачи ТС, было бы идеально (ну почти) из ВК (или что там внешнее) напрямую дергать wsap24.dll (wsap22.dll или wsisapi.dll или аналог для linux)
Без веб-сервера А уже она дергает сервер 1С |
|||
19
АгентБезопасной Нацио
03.05.24
✎
12:28
|
(4) так для http и не будет никакого кода дополнительного. вообще. Будет сразу вызов процедуры, которую ты напишешь...
|
|||
20
АгентБезопасной Нацио
03.05.24
✎
12:30
|
(18) да, про необходимость веб-сервера я забыл :-(
(0) еще нужен веб-сервер, апач или ИИС. |
|||
21
int32i
03.05.24
✎
14:04
|
(0) Законно это невозможно никак.
Сервер слушает только то, что ему разрешено слушать - Клиентов и Веб. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |