Olej,
Да сам сервер то есть и он работает, данные принимает - отправляет с этим все хорошо. Тут вопрос в том, как реализовать внеочередную отправку пакета клиенту.
В общем, основной сервер (Си + либэвент) получил пакет от клиента - разобрал его положил в очередь, другой поток этого приложения забрал эти данные из очереди и отправил стороннему сервису , тот сервис смотрит в базе данные к отправке для клиента и если они есть отправляет их обратно.
И вот сишный сервер получив от стороннего сервиса данные к отправке должен отправить их нужному клиенту и желательно сразу после получения. Но т.к это делается это в другом потоке и в очередь складывается только уже разобранные данные, то ссылки на клиента нет.
Хотя если в очередь данных добавлять еще ссылку на клиента (struct bufferevent*), то в теории получится сразу же отправлять данные, но тогда есть риск того, что клиент уже отключился а мы пытаемся ему данные пихнуть. Да и сам вариант использования объектов libevent'a в разных потоках кажется мне не совсем корректным, или я не прав?
Был вариант складывать все ответы в очередь и после получения нового сообщения от клиента проходиться по этой очереди и смотреть есть ли данные к отправке и если есть отправлять, но это работа с задержкой, т.к нужно ждать очередного пакета от клиента.