Chatkit does exactly everything you want already and even more. Typing indicators,roles and permission ( you could use this to restrict only admins to adding and removing users in a group or deletion of messages).
While you say it is expensive:
- probably the easiest integration you'd find around around. Here is an example of what you described above https://pusher.com/tutorials/chat-app-react-native-gifted-ch... ( probably just 4 - 15 lines of code and you have real time chat, "who's typing" )
- it offers quite a ton of features you might be overlooking right now. An example is sending push notifications to offline users automatically
- pricing is actually generous enough since you get a thousand unique users before paying $500/pm. Except your business is pretty large, you might not hitting that limit any time soon and at the time, you hit the limit, the prices might be justifiable - maybe