I have a service processing periodic messages (periodic could be every 1 to 10 seconds or so per client) from mobile clients connecting over intermittent LTE connections. The server is using a PULL socket. It is written in Go, using goczmq.
The communication is one way, no reply is ever sent to the client. There can be many clients per server. The connection is encrypted. The server only cares about the latest messages from the client. If the LTE connection drops, the client does not queue messages, but instead just eats the error and waits for connectivity to resume. On the server side, the result appears to be a socket (file descriptor) leak. When the client reconnects, the server side doesn't notice that the old connection is defunct, and doesn't have any way to destroy the socket. The server is running on Linux (Debian). Is there a way to track when a client connects to a PULL socket and record the socket? With some sort of hook like that, I could attach a timer and garbage collect abandoned sockets. Thanks, -chuck
_______________________________________________ zeromq-dev mailing list [email protected] https://lists.zeromq.org/mailman/listinfo/zeromq-dev
