Size: a a a

2019 August 15

P

Pavel in pro.lua
Evgeniy Gostkov
Всем привет! простейшая наверное задача, но что-то не соображу. есть коллекция в mongodb, в которой есть валидатор, один из ключей должен быть типа Date,
делаю insert, пробовал в качестве значения ключа задавать строку "2019-08-15T15:08:00Z" - не катит,  по доке не вижу метода конвертации в Date (https://github.com/neoxic/lua-mongo/blob/master/doc/main.md).
Пример:
res,err = collection:insert({start = "2019-08-15T15:08:00Z"}  ); — ошибка валидации
Собственно, что-то упускаю, но не соображу что..
https://docs.mongodb.com/v4.0/reference/method/Date/

Не получится сделать что нить res,err = collection:insert({start = "new Date(2019-08-15T15:08:00Z)"}  ); ?

или
res,err = collection:insert({start = mongo.DateTime(9223372036854775807});
источник

P

Pavel in pro.lua
Super Man
Ребята, у меня тут задачка возникла - нужно в сделать прокси на луа и нгинкс для tcp, но я при этом налету хочу кое какие ответы править, как это можно сделать?
а расскажи - что именно хочешь? именно tcp ? или HTTP ?
источник

P

Pavel in pro.lua
Можешь ворваться в header_filter_by_lua или body_filter_by_lua

они вызываются, уже после того как сервер ответил
источник

SM

Super Man in pro.lua
это протокол tcp, а не http
источник

SM

Super Man in pro.lua
он в контексте stream работает
источник

SM

Super Man in pro.lua
к сожалению там нету этих блоков - header_filter и body_filter
источник

SM

Super Man in pro.lua
я хочу сделать tcp прокси, который не просто проксирует данные, а на лету их меняет. если я верно понимаю, тут надо другим способом подходить. слушать запрос от стрима. затем открывать самостоятельно сокет и коннектиться на бекенд. пересылать ему этот ответ, ждать его ответ и эхом выводить первому клиенту
источник

SM

Super Man in pro.lua
но это как-то ужасно криво выглядит, что-то вроде body_filter было бы шикарно
источник

P

Pavel in pro.lua
источник

P

Pavel in pro.lua
ngx_http_lua_module - Embed the power of Lua into Nginx HTTP Servers.
источник

P

Pavel in pro.lua
TCP кажись не процессит он от слова совсем-)
источник

P

Pavel in pro.lua
Super Man
но это как-то ужасно криво выглядит, что-то вроде body_filter было бы шикарно
источник

SM

Super Man in pro.lua
я поставил этот модуль
источник

SM

Super Man in pro.lua
но в нем нету body_filter
источник

P

Pavel in pro.lua
content_by_lua_block
пульни из него запрос в соседний порт того же nginx

получи ответ.

допиши\прочитай
источник

SM

Super Man in pro.lua
так проблема-то в том, что как только я читаю из сокета, то в сокете это исчезает
источник

SM

Super Man in pro.lua
It is possible to acquire the raw request socket using ngx.req.socket and receive data from or send data to the client. However, keep in mind that calling the receive() method of the request socket will consume the data from the buffer and such consumed data will not be seen by handlers further down the chain.
источник

SM

Super Man in pro.lua
т.е. как только я прочитаю данные, я должен сам заботиться об их отправке туда, куда я хочу отправить проксированный запрос
источник

SM

Super Man in pro.lua
я думаю я с этим разберусь, но я хочу понять, есть ли более легкий и человеческий путь
источник

SM

Super Man in pro.lua
в самом простом виде я даже проснифать толком не могу это
источник