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

Reply via email to