The com.apple.developer.pushkit.unrestricted-voip entitlement is not necessary to implement a chat application.
You can easily use regular UserNotifications for sending messages in a chat. If your use case requires processing of this message before it is presented to the user (for example decrypting messages, adding sender information to the notification, etc.), you can create a notification service extension as explained here: <
https://developer.apple.com/documentation/usernotifications/unnotificationserviceextension>You can read the full details at the link above, but in a messaging context, the service extension can be used to inform your server when the notification actually reached the device (both for metric and message handling purposes) as well as allowing you to adjust the notification content.
The Notification Service Extension, which will be executed for every visible push, can manipulate what notifications are currently being displayed (dismissing existing notifications), as well as downloading updated contents or missed messages.