Differences

This shows you the differences between two versions of the page.

Link to this comparison view

irc:1463349600 [2017/05/27 13:44] (current)
Line 1: Line 1:
 +[00:31:19] *** ChanServ sets mode: +o temporalfox
 +
 +[02:25:38] <​jejohnso>​ Is 2.1.4 the last Vert.x to use python?
 +
 +[10:00:25] *** ChanServ sets mode: +o temporalfox
 +
 +[10:41:13] <​LostCoder>​ I need some help understanding how connection pooling works with HttpClient.
 +
 +[10:42:15] <​LostCoder>​ specifically with websockets
 +
 +[10:42:56] <​LostCoder>​ as far as I understand using the rest part of the client reuses connections (with tcp keep alive enabled by default)
 +
 +[10:43:10] <​LostCoder> ​ HttpClient client = vertx.createHttpClient().post(8080,​localhost,"/"​)... ​ will re use connection
 +
 +[10:43:37] <​LostCoder>​ but what about client.websocket(port,​url .... ?
 +
 +[10:52:11] <​LostCoder>​ does websocket.close() put the connection back into the pool?
 +
 +[11:32:11] <​LostCoder>​ I created a quick example that shows my use case (a simple websocket service that base64 encodes data).
 +
 +[11:32:22] <​LostCoder>​ https://​github.com/​seanjburns/​playground/​blob/​master/​src/​main/​java/​org/​lostcoder/​vertx/​websocket/​Client.java
 +
 +[11:33:15] <​LostCoder>​ Now when I run my unit test, it seems to create 10 websocket connections. What I would like to do is "​reuse"​ the same connection 10 times.
 +
 +[11:33:16] <​LostCoder>​ https://​github.com/​seanjburns/​playground/​blob/​master/​src/​test/​java/​org/​lostcoder/​vertx/​websocket/​ServerTest.java
 +
 +[11:33:28] <​LostCoder>​ What do I need to change on the client?
 +
 +[11:34:22] <​LostCoder>​ or am I thinking about the solution in the wrong way?
 +
 +[12:13:19] *** ChanServ sets mode: +o temporalfox
 +
 +[13:41:31] <​temporalfox>​ hi AlexLehm
 +
 +[14:03:23] <​AlexLehm>​ hello temporalfox
 +
 +[14:03:45] <​temporalfox>​ I started something you might be interested contributing to
 +
 +[14:03:51] <​AlexLehm>​ i have a netty question relating to the proxy implementation i have done
 +
 +[14:03:54] <​AlexLehm>​ ok
 +
 +[14:04:01] <​temporalfox>​ do you know traeffik ?
 +
 +[14:04:34] <​temporalfox>​ traefik actually
 +
 +[14:04:52] <​temporalfox>​ I started something similar with vertx
 +
 +[14:05:22] <​temporalfox>​ the idea is to expose easily such services with vertx in front
 +
 +[14:06:39] <​AlexLehm>​ never heared of this, but i can take a look
 +
 +[14:07:54] <​temporalfox>​ https://​github.com/​vietj/​vertx-reverse-proxy
 +
 +[14:08:04] <​temporalfox>​ actually a friend mentionned this a couple of days ago
 +
 +[14:08:12] <​temporalfox>​ because they have docker services and are a java shop
 +
 +[14:08:18] <​temporalfox>​ and they would like to have something similar but in java
 +
 +[14:08:43] <​temporalfox>​ also it's a good way for to improve the vertx http client / server
 +
 +[14:10:37] <​temporalfox>​ what's your question regarding proxy ?
 +
 +[14:10:45] <​temporalfox>​ I think you started to look at socks proxy ?
 +
 +[14:11:48] <​AlexLehm>​ yes, i have implemented a "​merged"​ channel provider to support both HTTP and SOCKS5, which kind of works
 +
 +[14:12:12] <​AlexLehm>​ I noticed a thing in Netty that I didn't understand at first
 +
 +[14:12:40] <​AlexLehm>​ the http connect proxy uses a user event to trigger the channel handler called ProxyConnectEvent or something
 +
 +[14:12:46] <​AlexLehm>​ this part is actually from you
 +
 +[14:12:53] <​AlexLehm>​ from your code
 +
 +[14:13:37] <​AlexLehm>​ when I implement the same thing in NetClient, the proxy connect event is never triggered so I am calling the handler in the bootstrap connect future
 +
 +[14:13:44] <​temporalfox>​ yes I used that I think to then do actual pipeline configuration
 +
 +[14:13:49] <​temporalfox>​ specially for HTTP/2
 +
 +[14:14:07] <​AlexLehm>​ this works, but I not quite getting why the proxy event isn't triggered in my case
 +
 +[14:14:19] <​temporalfox>​ only one way to know :-)
 +
 +[14:14:24] <​temporalfox>​ debug
 +
 +[14:14:52] <​AlexLehm>​ i think the HttpClient triggers the event, but the NetClient doesn'​t
 +
 +[14:15:36] <​temporalfox>​ which event exactly ?
 +
 +[14:15:47] <​temporalfox>​ ah I see
 +
 +[14:15:59] <​temporalfox>​ the http proxy handler and the socks proxy
 +
 +[14:16:05] <​temporalfox>​ both inherits from the same abstract proxy handler class
 +
 +[14:16:11] <​temporalfox>​ and trigger the same event
 +
 +[14:17:46] <​AlexLehm>​ ProxyConnectionEvent
 +
 +[14:18:35] <​temporalfox>​ did you use wireshark ?
 +
 +[14:18:41] <​temporalfox>​ to see what happens
 +
 +[14:19:32] <​dns_>​ hi there! What is the preferable jdbc driver version for connect to PostgreSQL? I use org.postgresql (9.4-1200-jdbc41) and when I call a function with params provided by JsonArray postgresql raises an exception: org.postgresql.util.PSQLException:​ Can't infer the SQL type to use for an instance of io.vertx.core.json.JsonObject. What's wrong?
 +
 +[14:19:39] <​AlexLehm>​ the request works correctly, the connection via socks5 is established
 +
 +[14:22:03] <​AlexLehm>​ i can access https://​www.google.de/​ via my socks5 proxy with NetClient, so I think it is doing the proxy protocol correctly
 +
 +[14:23:01] <​temporalfox>​ ok
 +
 +[14:23:08] <​temporalfox>​ then you should debug the netty code
 +
 +[14:23:17] <​temporalfox>​ add a breakpoint to see if the event is actually triggered or not
 +
 +[14:23:26] <​temporalfox>​ Intellij can set breakpoint that only log on the console
 +
 +[14:27:04] <​AlexLehm>​ ok i will do some more tests
 +
 +[14:29:03] <​AlexLehm>​ ok, a somewhat related question, how can we test a socks proxy in Java? I am currently using Putty via a ssh tunnel which supports SOCKS5 but I have not found a socks server implementation in java
 +
 +[14:29:25] <​temporalfox>​ I'm not a socks expert :-)
 +
 +[14:29:50] <​temporalfox>​ one way is to make a tcp server
 +
 +[14:29:59] <​temporalfox>​ and mock the sock server
 +
 +[14:30:06] <​temporalfox>​ using expected byte arrays
 +
 +[14:30:07] <​temporalfox>​ etc...
 +
 +[14:31:30] <​AlexLehm>​ ok, that might work
 +
 +[14:32:00] <​temporalfox>​ I need to go :-)
 +
 +[14:32:05] <​temporalfox>​ today is holiday
 +
 +[14:32:44] <​temporalfox>​ dns_ what postrgres type are you trying to use ?
 +
 +[14:33:24] <​dns_>​ json
 +
 +[14:34:42] <​AlexLehm>​ temporalfox:​ in germany as well, but today i have some time to progam :-)
 +
 +[14:34:54] <​temporalfox>​ ahah so do I!!!
 +
 +[14:35:04] <​temporalfox>​ so I started this reverse proxy :-)
 +
 +[14:35:18] <​temporalfox>​ actually somoeone asked for having HttpConnection support in HTTP/1
 +
 +[14:35:30] <​temporalfox>​ and now doing the reverse proxy, I see that it would rather be useful
 +
 +[14:35:49] <​temporalfox>​ (so the proxy can close the http client connection if something wrong happens with the proxies request)
 +
 +[14:36:48] <​temporalfox>​ dns_ looking at the tests in http client, I don't think we support it
 +
 +[14:37:04] <​temporalfox>​ dns_ you should open an issue on vertx-jdbc-client project
 +
 +[14:37:49] <​dns_>​ ok. thx!
 +
 +[14:54:08] <​AlexLehm>​ dns_: do you have structured data as fields or similar in the json object or do you need to store that in a single column? maybe its possible to convert the json to string beforehand
 +
 +[14:55:55] <​dns_>​ if I use text data type it works well
 +
 +[14:56:42] <​dns_>​ error is only when PGdriver trying to convert JsonArray to json DB type.
 +
 +[15:00:02] <​dns_>​ I have a verticle that have only one way to call statements in DB. All my functions consume one json parameter and produce json type.
 +
 +[15:19:20] <​AlexLehm>​ dns_: ok, i guess you should create an issue on the github as julien said
 +
 +[15:21:53] <​dns_>​ Yes. I did
 +
 +[15:58:51] *** ChanServ sets mode: +o temporal_
 +
 +[18:49:45] <​BadApe>​ how can i set a NULL in an SQL prepared statement?