Member 11326763 Ответов: 2

Как передавать сообщения и данные между двумя устройствами android через интернет


Привет,
Мне нужно разработать приложение, которое будет передавать данные между двумя разными устройствами.
Например, мне нужно создать чат-приложение, которое будет отправлять сообщения между двумя устройствами, расположенными в разных географических зонах.
(через интернет-соединение !)
Устройство а знает IP-адрес устройства В и наоборот.
Я знаю, что IP-адрес, который я получил в своих устройствах, находится под провайдером.
У меня есть один вопрос :
1.Существует любое решение этой проблемы без сервера подключения посередине, отправляющего сообщения/данные между различными устройствами (без какого-либо компонента третьей части).
2. Если ответ на вопрос 1-нет! (или это очень сложно для реализации). Может быть, вы можете предложить способ реализации с сервером посередине (как сохранить канал открытым ?).
Сервер должен держать сокеты двух устройств открытыми все время??, или может подключаться по требованию (как работает такое приложение, как whatsapp?).

Спасибо.
МАК

Что я уже пробовал:

поиск в google и code project

NotPolitcallyCorrect

Вы искали в google "Android peer to peer chat" и ничего не нашли? Я получил почти 500 тысяч результатов....

Member 11326763

Пожалуйста, поделитесь с нами рабочим решением, которое не использует коммерческий сторонний компонент.
И работает через интернет (не через Wi-Fi)

NotPolitcallyCorrect

Почему? Почему кто-то должен просто передать вам свою тяжелую работу? Почему вы не можете провести собственное исследование и написать свой собственный код?

Member 11326763

Прежде всего, я хочу прояснить этот вопрос, я не прошу Вас или кого-либо другого сделать эту работу за меня.
Мой вопрос был только концептуальным!!.
Вы говорите, что нашли ответ в Google, поэтому я прошу поделиться им со мной.
Результат от вашего поискового ключа в Google я уже вижу и тестирую, и результат не удовлетворяет.
Я задаю этот вопрос, чтобы знать, если я что-то упущу !!
Как вы правильно выглядите в результате.
P. S:Если у вас нет ничего хорошего, чтобы сказать, не говорите вообще ничего

NotPolitcallyCorrect

Прежде всего, вы *действительно* попросили нас сделать вашу работу за вас, "поделитесь с нами рабочим решением".
Во-вторых, мы не ваши научные помощники. Ваши исследования - это ваша работа, а не чья-то еще.
В-третьих, вы не задали ни одного вопроса. Вы просили нас сделать за вас вашу работу, но этого не произойдет.
В-четвертых, ваша неспособность задать вопрос или сделать свою собственную работу не означает, что я был груб с вами. Я был очень добр к тебе. Я просто спросил, почему ты считаешь, что мы должны делать за тебя твою работу. Вопрос, на который вы, очевидно, не можете ответить.

Member 11326763

Опять же, как я уже сказал , Вы можете прочитать мой первоначальный вопрос, вопрос был только концептуальным!, я открываю этот вопрос для обсуждения, потому что не нашел никакой релевантной информации .
Ваш ответ был непрофессиональным "вы искали в Google "Android peer to peer chat "" это ответ кого-то , кто хочет помочь?, вы только мешаете людям, которые действительно хотят участвовать в обсуждении, вместо того, чтобы открыть этот вопрос для обсуждения, сделайте мозговой штурм, который поможет другим людям....
И поверьте мне, есть много чего обсудить по этому вопросу.
Вы говорите , что нашли более 500 тысяч результатов, поэтому я прошу вас поделиться с нами...
P. S: Я думаю, что никакой конкуренции по количеству сообщений нет.

2 Ответов

Рейтинг:
1

Oliver Bleckmann

1. Использование FCM бывшего GCM: https://developers.google.com/cloud-messaging/concept-options#notifications_and_data_messages[^] ограничения, например, 4K-полезная нагрузка, см. по ссылке.

2. Поиск клиент- / серверных реализаций WebRTC. Короче говоря, невозможно подключить два устройства без участия сервера. Найдите "udp hole punching", "stun server" и т. д. в goolge. Вот как по сути работает WebRTC. У Google есть несколько серверов для этой цели, и они могут быть бесплатными.

3. Использовать паб/саб, протокол XMPP, с WebSocket, messagebroker-, сообщение-очереди - или все-в-одном-поставщик, сдают свою инфраструктуру и использовать их SDK или библиотеки.

4. Настройка №3 самостоятельно. Найдите в google реализации на выбранном вами языке.

Первое решение может быть самым дешевым и простым, второе-ужасным, № 3-самым безболезненным и прямым, но ИМХО никакого лобового решения с точки зрения соответствия и надежности, кроме крупных игроков. #4-это тяжелая работа, и еще труднее работать и поддерживать ее с точки зрения мониторинга, обновления, масштабирования и т. д.

повеселиться


Рейтинг:
0

David_Wimbley

Никто здесь не будет делать эту работу за вас, это то, что вы указываете в комментариях. Как сказал NotPoliticallyCorrect, простой поиск в google решит вашу проблему.

https://www.google.com/search?м=андроид+Пэр+в+экспертных+чат&т. е.=кодировка UTF-8&амп;ОЭ=кодировка UTF-8[^]

Кроме того, вы говорите, что хотите, чтобы он работал через интернет, а не через Wi-Fi. Но это android-устройства...я что-то упустил?

Цитата:
1.Существует любое решение этой проблемы без сервера подключения посередине, отправляющего сообщения/данные между различными устройствами (без какого-либо компонента третьей части).


Если вы не хотите развлекать сторонние компоненты, будьте готовы засучить рукава и сделать некоторую работу. Потому что если вы не хотите платить за что-то, то вам, вероятно, придется строить его самостоятельно.

Цитата:

2. Если ответ на вопрос 1-нет! (или это очень сложно для реализации). Может быть, вы можете предложить способ реализации с сервером посередине (как сохранить канал открытым ?).
Сервер должен держать сокеты двух устройств открытыми все время??, или может подключаться по требованию (как работает такое приложение, как whatsapp?).


Исходя из этого второго вопроса, вам действительно нужно провести некоторое исследование того, как работают веб-сервисы. То, что вы, вероятно, в конечном итоге сделаете, - это предоставите веб-сервис, который может реагировать на запросы ваших устройств по мере необходимости. Теперь веб-сервис - это то, что вам придется создать.

Я предлагаю Вам google, как построить веб-сервис на java, чтобы завершить эту часть.

Затем ваши устройства будут совершать вызовы веб-служб на основе ваших требований/того, что вы пытаетесь выполнить.

Вы должны помнить, что мы не служба, которая делает работу за вас. Если вы хотите, чтобы кто-то передал вам свою работу, вам нужно пойти к freelancers.com или что-то в этом роде.

Теперь, если вы попытаетесь выполнить этот проект и застрянете на этом пути, не стесняйтесь вернуться с четким объяснением вашей проблемы, некоторыми релевантными образцами кода и лучшим отношением к получению помощи, и я уверен, что кто-то будет рад оказать вам помощь. Вы должны иметь в виду, что у нас нет доступа к вашему компьютеру, вашему коду, мы не читаем мысли и ничего не знаем о вашем проекте.