Dear Bill, You should use a "MHD_NotifyConnectionCallback" to be notified about when MHD is 'finished' with a connection. Then, you can insert the connection when the websocket mode is started into a data structure (usually a doubly-linked-list (DLL) is better than an array) and remove it during the above callback. To 'broadcast', you'd then iterate over the DLL to send on each connection. Pseudocode:
struct ConnectionDllEntry { struct ConnectionDllEntry *next; struct ConnectionDllEntry *prev; struct MHD_Connection *conn; // other data structures you keep per connection }; Then make sure to keep the above in the 'socket_context' you have per MHD connection, and to clean up when the connection is finished: void my_notify_connection_cb (void *cls, struct MHD_Connection *connection, void **socket_context, enum MHD_ConnectionNotificationCode toe) { struct ConnectionDllEntry *cde = *socket_context; assert (connection == cde->connection); REMOVE_FROM_DLL (cde_head, cde_tail, cde); free (cde); } Anyway, I hope those bits give you enough of the idea. Happy hacking! Christian On 7/19/22 23:47, Bill Bowling wrote: > I've been using libmicrohttpd for many years and have recently become > interested in using websockets. > I have a working version that seems to do what I want with a single client. > But, I want to broadcast a response to all connected clients. > > I've searched through many posts and documents but have not stumbled > across how this could be done. > > I think if I could place the connections in an array I could then loop > through them. > I have not been able to find enough information to pull this off. > > Any help would be appreciated. > > -- > Thanks, > Bill Bowling