Сергей (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Кто как решил вопрос уведомления о сделках?
 
Алексей,
В итоге, я все почистил и попробовал заново. Скачал ZeroBraneStudio , взял оттуда нужнве мне модули с сохранением структуры папок. Получилось следующее:
Код
C:\MY-ROBOT
│   libeay32.dll
│   ltn12.lua
│   mime.lua
│   robot.lua
│   socket.lua
│   ssl.lua
│   ssleay32.dll
│
├───clibs
│   │   lexlpeg.dll
│   │   lfs.dll
│   │   liblua.dll
│   │   libzlib.dll
│   │   lpeg.dll
│   │   ssl.dll
│   │   winapi.dll
│   │   wx.dll
│   │
│   │
│   ├───mime
│   │       core.dll
│   │
│   └───socket
│           core.dll
│
├───socket
│       ftp.lua
│       headers.lua
│       http.lua
│       smtp.lua
│       tp.lua
│       url.lua
│
└───ssl
        https.lua
В квике нет ничего, что связано с моим скриптом. Добавлена лишь копия lua5.1.dll с именем lua51.dll
Проблема все та же. Я решил добавил множество дебаг сообщений в https.lua, socket.lua и ssl.lua для диагностики. Также  решил подождать и не спешить убивать квик . Оказалось, что через минут 5 скрипт оживает и не падает. При этом запрос не отсылается на сервер. По отладочным сообщениям обнаружил, что зависание происходит в функции newcontext при вызове context.create . Как я понял, это вызывается соответствующий метод в ssl.dll . В итоге написал цикл, который осуществляет 10 попыток отослать запрос на сервер. После первой итерации, которая не доходила до сервера,  запросы стали успешно отсылаться. Как я понял, задержка с ssl сокетом есть у всех, но не такая большая? Получается этот запрос выполняется в основном потоке и блокирует все остальные операции ? Поскольку с http запросами такой задержки нет, для себя решил написать простенький прокси, который принимает http запрос от квика, сразу же отвечает статусом OK(HTTP 200), чтобы не блокировать квик и избежать проблем в случае, если удаленный хост будет тормозить с ответом . После ответа квику  он в фоне переправляет запрос куда  нужно и как нужно.
Кто как решил вопрос уведомления о сделках?
 
Алексей,
Нет, таймаут в скрипте не переопределен. Попробую поиграться с ним. Может в таймауте дело... Хотя вряд ли. Сервер, куда я пытаюсь достучаться, отвечает без задержек
Кто как решил вопрос уведомления о сделках?
 
Александр Волфовиц,

Было бы полезно. У меня проблема с протоколом ssl . В luasec 0.6a, который используется в телеграм боте по умолчанию используется tlsv1 . Я взял https.lua из luasec 0.7 alpha, там по умолчанию протокол выставлен в значение 'any' В результате, зависания нет, но в response code пришло "invalid protocol (any)" . Похоже, что-то не так с либами OpenSSL. Нужно ли что-то дополнительно ставить в систему для обеспечения работы luasec?
Кто как решил вопрос уведомления о сделках?
 
rinat,

Я это увидел, символ пропал при вставке в форум. Не нашел как редактировать сообщение. Проблема не в этом. Судя по алертам, зависает где-то внутри https.request . Копаю дальше
Кто как решил вопрос уведомления о сделках?
 
Проверил работу luasocket, метод http.request работает. Что-то  не так с либами luasec, видимо. Нужно ли ставить lua for windows?
Кто как решил вопрос уведомления о сделках?
 
win 7 pro 32bit Проблема один в один...
Кто как решил вопрос уведомления о сделках?
 
Всем привет!
Пытаюь прикрутить отправку уведомления из квика с помощью POST через https.
Разложил либы luasec , которые взял в этой же ветке, lua скрипты. При попытке запустить lua скрипт, quik зависает намертво.
Система Windows 2008 Server, 64 бит. Подскажите, как можно найти причину зависания.
Скрипт  такой:
Код
gSPath = getScriptPath()
package.cpath = gSPath .."\\?.dll;" .. package.cpath
package.path = gSPath .."\\?.lua;" .. gSPath .. "\\?.luac;" ..package.path
function OnInit()
ocal https = require ('ssl.https')
   local ltn12 = require('ltn12')


  
  local payload = '{"text": "Hello from quik!"}'
  local response_body = { }
  local res, code, response_headers, status = https.request
  {
    url = "https://....",
    method = "POST",
    headers =
    {
      ["content-length"] = string.len(payload),
      ["Content-Type"] =  "application/json",
    },
    source = ltn12.source.string(payload),
    sink = ltn12.sink.table(response_body)
  }
....


end

Пробовал взять либы/скрипты из телеграм бота - тоже не помогло. Продублировал все структуру файлов/папок в папку с моим роботом, а также в папку с квиком. Копию файла lua5.1.dll (lua51.dll) сделал, помешать не должно.
Страницы: 1
Наверх