Communicating with an external widget

I’ve written a widget in React which is compiled down to JS and can be included on someone else’s page by them just adding the script and a div to anchor the widget to. I now need to figure out the best way to communicate back and forth between the widget and my Meteor backend.

I would assume most first suggestions would be to try and use a DDP client, but this is something i’d like to avoid. What is a better alternative? The widget is essentially just a chat widget. My first thought would be to use something like Socket.io and just listen for events on both the widget and backend. I would need to come up with some sort of channels so that each widget only corresponds to the backend for a single user.

I could also use a REST api, but I assume this would not be ideal.

Input on this matter is appreciated, thanks.