Tobias Dubois

Results 13 comments of Tobias Dubois

Workaround with a HAProxy load balancer: ``` ## websocket protocol validation acl hdr_connection_upgrade hdr(Connection) -i upgrade acl hdr_upgrade_websocket hdr(Upgrade) -i websocket acl hdr_valid_protocol hdr(Sec-WebSocket-Protocol) -i mqtt acl hdr_websocket_key hdr_cnt(Sec-WebSocket-Key) eq...

If a server is exposed on the Internet there is a lot of different crawlers, scanners and hackers that sends various http requests to the server. I think VerneMQ should...

Yes, could return 403 or similar for non mqtt websocket requests. A log may be ok, but it should not be logged as a crash.

The code is not actually using websockets. Looks like `WebSocket_getch` just calls `SSLSocket_getch`.

The potential performance issues that I found are overhead from StackTrace and a lack of buffered I/O. The use case is receiving thousands of messages per second in a server.

True. Even the few single chars read from the packet header seem to cause some noticeable overhead, although it is improved with stacktrace disabled. With buffered I/O I meant that...

Yes, Paho Python works in the same way. The gain of a client side buffer I guess would be to avoid the syscall overhead of many small packets. With stacktrace...

Logs also seem to cause some significant overhead (21% of CPU time in my test case with stacktrace enabled). It seems `trace_level` can't be set lower than `TRACE_MINIMUM`. Is it...

I haven't retested using both NOSTACKTRACE and NO_HEAP_TRACKING. Can I set those flags using CMake? In [`Log_setTraceLevel`](https://github.com/eclipse/paho.mqtt.c/blob/master/src/Log.c#L215) it seems like I can't set trace level lower than `TRACE_MINIMUM` which still...

I retested now with `NOSTACKTRACE` and `NO_HEAP_TRACKING` and the performance is finally better than for Paho Python! The remaining logging overhead is now at 16% CPU time (No TLS, default...