Tobias Dubois
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...