Websocket ile dediğiniz yapılır, mantıklı çözüm budur. İllaki PHP/Codeigniter ile kolay yoldan bir çözüm istiyorsanız yol haritanız:

- Client-side'da Javascript ile her 3-5 sn'de veri tabanından mesajları getireceksiniz. Bunun için Ajax ve setInterval işinize yaracak.
- Backend'de kullanıcı mesaj gönderdiği zaman veri tabanına user_id değerini kayıt edersiniz. Bu veriyi de sessiondan çekebilirsiniz.
- Aynısı yönetici panelinde de olacak, yönetici mesajları cevapladığı zaman yine aynı şekilde veri tabanına kaydolacak mesela.

Edit: Araştırınca gördüm, codeigniter-websocket diye kütüphane geliştirmişler, örnek kodlar vs. var. İnceleyebilirsiniz: https://github.com/takielias/codeigniter-websocket