У меня есть ajax и ws клиенты но чат 1. Я думаю сделать как то так.
При входе в чат любого пользователя идёт запрос к ajax версии для получения сообщений с бд. Если юзер поддерживает ws то конектимся к вс серверу. При отправке сообщения ws сервер отправляет его всем подключённым пользователям и добавляет в бд. При отправке сообщения ajax серверу он отправляет сообщение сокету и ждёт ответа (дабы сообщение точно добавилось в бд) как только сокет ответил он тянет из базы n сообщений и отдаёт их пользователю. Чат ajax не обновляется автоматом (пользователь должен жать "обновить").