Вам необходимо найти или создать службы, к которым ваши клиенты могут подключиться, и:
- загружайте файлы (фото, видео .etc) и получайте общедоступный и загружаемый URL.
- отправлять сообщения другим подключенным клиентам, которые кроме строки также содержат метаданные мультимедиа (например, список файловых вложений, которые фактически являются URL-адресами, загруженными в сервис (1))
Теперь, если вы не можете найти один сервис, который поддерживает эти два, вы можете попытаться найти два разных.
здесь - пример консольного приложения чата в C #. Он содержит веб-службу и клиентскую библиотеку, используемую консольным приложением. Вместо консольного приложения его можно использовать в приложении Unity. Он не поддерживает загрузку файлов, но может отправлять сообщения между клиентами через веб-сокеты.
Если бы вы создавали что-то самостоятельно, вместо того, чтобы находить сторонние сервисы, я бы порекомендовал node.js / express и socket.io для сервера, поскольку он довольно удобен для начинающих.
здесь - клиентская библиотека C #, которая может прослушивать события socket.io с сервера. Это должно быть то же самое, что используется в консольном приложении, которым я поделился выше.