2013-04-29 7 views
2

Я хочу разработать приложение для Android, которое обменивается данными с сервером. До сих пор я не уверен в разработке программного обеспечения:JSON over socket - это хорошая идея?

Я не хочу реализовывать серверный процесс как веб-службу, потому что сервер должен иметь возможность передавать данные подключенным (Android) клиентам.

Позже, я хочу быть готовым к другим клиентам, таким как iPhone или Windows Phone. Поэтому я считаю, что неплохо выбрать формат JSON для обмена данными между сервером и клиентами.

Это хорошая идея отправить объекты JSON поверх сырых сокетов? Есть ли библиотека, соответствующая моим требованиям, особенно толкание объектов от сервера к клиентам?

+1

Просто используйте HTTP/S. – Nick

+0

Попробуйте ['Protocol Buffers'] [1] [1]: https://code.google.com/p/protobuf/ – znlyj

ответ

1

Вы, кажется, задавать два отдельных вопроса здесь.

Первый вопрос заключается в том, как выполнять передачу данных клиентским устройствам. Push-уведомления на Android - это целая тема сама по себе, которая обсуждается в большом количестве вопросов SO. Вы можете посмотреть, например, Google Could Messaging или MQTT.

Второй вопрос касается формата представления ваших данных приложения, что представляет собой отдельную проблему, касающуюся того, как вы собираетесь выполнять push-уведомления. Да, JSON - прекрасный формат для обмена данными через сырые сокеты, если он подходит вашему приложению, но помните, что вам по-прежнему нужен какой-то протокол формирования сообщений через сырые сокеты, который инкапсулирует данные JSON. В общем, хотя я бы настоятельно советовал вам не пытаться делать что-то поверх сырых TCP-сокетов, если это возможно, и вместо этого использовать существующую библиотеку протоколов, которая сидит выше TCP, потому что писать собственный протокол сообщений может быть больше, чем в первый раз.

Например, вы можете выбрать MQTT для выполнения push-уведомлений. Вы бы захватили существующую библиотеку MQTT, и вы могли бы выталкивать сообщения в формате JSON, не беспокоясь о низкоуровневых операциях сокета TCP.

+0

Спасибо, сэр! Я посмотрю на MQTT. – benlismo

Смежные вопросы