Как зарегистрировать и отправить по интернету нажатия на клавиши контроллера PS4 на телефоне?
Задача:
Нужно организовать управление системой пс4 через джойстик Dualshock4 удалённо. Как я на данный момент это вижу:
Нужно регистрировать нажатия на клавиши джойстика, подключенного через Bluetooth к телефону и сразу отправлять их по интернету на другой телефон
Другой телефон будет подключаться к PS4 по кабелю и эти сигналы будет транслировать на пс , соответственно управляя ей
Что я пока реализовал:
Я нашел программу тестер джойстиков в плеймаркете. Она умеет регистрировать нажатия клавиш и сдвиги контроллеров.
Нужно теперь как то отправлять эти данные на другой телефон, который собственно и будет транслировать это все на пс и управлять ей
Пожалуйста, любые предложения, как это можно сделать и возможно ли это вообще?
Теоретически это сделать можно, клиент-сервер, клиент соответственно передает, сервер получает. Даже обратную связь можно наладить. Тут правда вылезает множество проблем, т.к. устройства очевидно должны видеть друг-дружку по IP, а это не так просто, т.к. оба устройства могут быть за NAT.
Это решаемо 2мя путями: быстрый в обмене данных и сложный в настройке (проброс портов), но простой в реализаци, либо медленный в обмене данными, простой в настройке (промежуточный сервер и регистрация устройств на нем, обмен данными через него), но сложный в реализации.
Самый главный вопрос - зачем? Удаленное устройство же не видит экран плойки, как оно управлять то будет? Да и пинг будет огромный.
Nikolai39204, ну, тут надо очевидно ТЗ писать, а я в этом не знаток, т.к. больше по банковской безопасности. ))) Но в любом случае надо определить формат передаваемых данных, а также как эти данные будут передаваться и по какому порту. Ну самый банальный вариант (но не самый оптимальный, первое что в голову пришло и что я сам делал) это REST API, т.е. данные передавать через HTTPS. Для Android есть библиотека OkHTTP (в принципе можно и штатными средствами Java, но так проще), данные передаются в формате POST HTTP. Повторяю, это не идеальное решение (возможно даже неверное в плане избыточности трафика), но его элементарно реализовать в связке клиент-сервер и это будет работать.
Вот тут можно почитать: https://habr.com/ru/articles/144011/
И вот тут: https://square.github.io/okhttp/
Конечно, более подходящим для подобного решения возможно был бы какой то протокол p2p, тут надо гугль спрашивать, я такого не делал сам...