Typical usage is that you connect and stay connected - otherwise you may/will miss notifications. But if you don’t want to stay connected, you can just use close() on the socket.
Is this related to your previous question about closing a socket connected with confd_notifications_connect2()? Anyway,
confd_notifications_connect2() is a function in the event notifications API, documented in the confd_lib_events(3) manual page.
cdb_end_session() is a function in the CDB API, documented in the confd_lib_cdb(3) manual page.
Neither the event notifications API nor the CDB API has any concept of starting or stopping user sessions.
You can most certainly not use the CDB API function cdb_end_session() with a socket for event notifications.
Using close() on an event notification socket will close the connection and discard the subscriptions requested via confd_notifications_connect() or confd_notifications_connect2().
Using close() on a CDB socket will close the connection and end the session (if any) for a CDB_DATA_SOCKET, or discard the subscriptions (if any) for a CDB_SUBSCRIPTION_SOCKET. However the documentation says to use cdb_close() rather than close() for this purpose.
Using cdb_end_session() on a CDB_DATA_SOCKET will end the session (if any), but not close the connection - as the documentation says, this is mostly useful if you want to reuse the connection for another session.