Я хотів би створити простий сервер HTTP в Android для обслуговування певного вмісту клієнту.
Будь-які поради щодо створення сервера або використання будь-якої існуючої бібліотеки?
Я хотів би створити простий сервер HTTP в Android для обслуговування певного вмісту клієнту.
Будь-які поради щодо створення сервера або використання будь-якої існуючої бібліотеки?
Відповіді:
Розглянемо це: https://github.com/NanoHttpd/nanohttpd . Дуже маленький, написаний на Java. Я ним користувався без жодних проблем.
NanoHttpd працює як принадність на Android - у нас є код у виробництві, в руках користувачів, він створений на цьому.
Ліцензія абсолютно дозволяє комерційне використання NanoHttpd, без будь-яких "вірусних" наслідків.
Це можна зробити за допомогою ServerSocket , як у JavaSE. Цей клас доступний на Android. android.permission.INTERNETнеобхідно.
Єдина більш складна частина, вам потрібно окремо зачекати потік на ServerSocket, обслуговуючи підрозетки, що виходять з його acceptметоду. Вам також потрібно зупинити та відновити цю нитку за потребою. Найпростіший підхід, здається, вбиває нитку очікування, закриваючи ServerSocket. Якщо вам потрібен сервер лише тоді, коли ваша активність знаходиться на вершині, запуск та зупинка потоку ServerSocket може бути досить елегантно прив’язана до методів життєвого циклу діяльності. Крім того, якщо на сервері є кілька користувачів, може бути корисним обслуговування сервісних запитів у роздвоєних потоках. Якщо є лише один користувач, це може не бути необхідним.
Якщо вам потрібно повідомити користувачеві, на якому IP- адресі прослуховується сервер, використовуйте NetworkInterface .getNetworkInterfaces (), це питання може підказати додаткові хитрощі.
Нарешті, тут , можливо, є повний мінімальний сервер для Android, який дуже короткий, простий і може бути простішим для розуміння, ніж готові додатки для кінцевих користувачів, рекомендовані в інших відповідях.
Інший сервер, на якому ви можете спробувати http://tjws.sf.net , насправді він вже пропонує версію для Android.
Ви можете спробувати видання Restlet для android:
Джерело можна завантажити з веб-сайту Restlet :
Якщо ви використовуєте kotlin, розгляньте ці бібліотеки. Це побудова для мови kotlin. https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer дуже маленький, але функція також менше.
Ktor - це дуже приємна бібліотека, і використання теж просто