Android服务器搭建

Android服务器搭建

AndServer搭建HTTP服务器

配置依赖

创建服务器

举例展示

Java-WebSocket搭建WebSocket

配置依赖

创建服务器

举例展示

Android服务器搭建

搭建Android服务器,是有一定需求的。当需要一定数据传输时,如果额外搭建服务器,会造成一定的开发成本问题和数据延迟问题。这时如果搭建一个Android平台服务器,可以很好的解决此问题。

这里主要介绍一下如何搭建Android的服务器实现HTTP和WebSocket。其中介绍AndServe搭建HTTP服务器和Java-WebSocket搭建WebSocket服务器端。

AndServer搭建HTTP服务器

官方文档:https://yanzhenjie.com/AndServer/,使用介绍和举例非常丰富,开发时很有帮助。

官方代码:https://github.com/yanzhenjie/AndServer,可以阅读源码,demo也很简洁丰富。

AndServer是Android平台的Web Server和Web Framework。 它基于编译时注解提供了类似SpringMVC的注解和功能,如果您熟悉SpringMVC,则可以非常快速地掌握它。

配置依赖

implementation 'com.yanzhenjie.andserver:api:2.0.5'

annotationProcessor 'com.yanzhenjie.andserver:processor:2.0.5'

创建服务器

创建服务器

Server mServer = AndServer.serverBuilder(this)

.inetAddress(NetUtils.getLocalIPAddress())//指定Ip地址

.port(PORT)

.timeout(10, TimeUnit.SECONDS)

.listener(new Server.ServerListener() {

@Override

public void onStarted() {

}

@Override

public void onStopped() {

}

@Override

public void onException(Exception e) {

}

})

.build();

启动服务器

private void startServer() {

if (!mServer.isRunning()) {

mServer.startup();//启动

}

}

退出服务器

private void stopServer() {

mServer.shutdown();//退出

}

举例展示

注意,GitHub上作者有丰富举例,可以更好学习,我简单写一个。

配置网址路径等等

package com.peanut.myapplication.http.component;

import android.content.Context;

import com.yanzhenjie.andserver.annotation.Config;

import com.yanzhenjie.andserver.framework.config.Multipart;

import com.yanzhenjie.andserver.framework.config.WebConfig;

import com.yanzhenjie.andserver.framework.website.AssetsWebsite;

import java.io.File;

@Config

public class AppConfig implements WebConfig {

@Override

public void onConfig(Context context, Delegate delegate) {

delegate.addWebsite(new AssetsWebsite(context, "/web"));

delegate.setMultipart(Multipart.newBuilder()

.allFileMaxSize(1024 * 1024 * 20) // 20M

.fileMaxSize(1024 * 1024 * 5) // 5M

.maxInMemorySize(1024 * 10) // 1024 * 10 bytes

.uploadTempDir(new File(context.getCacheDir(), "_server_upload_cache_"))

.build());

}

}

2. 访问登录界面

package com.peanut.myapplication.http.controller;

import com.yanzhenjie.andserver.annotation.Controller;

import com.yanzhenjie.andserver.annotation.GetMapping;

@Controller

public class PageController {

@GetMapping(path = "/")

public String index() {

return "forward:/index.html";//访问项目路径下网页

}

}

Java-WebSocket搭建WebSocket

配置依赖

implementation "org.java-websocket:Java-WebSocket:1.3.6"

创建服务器

创建服务器

继承WebSocketServer,传入端口

import org.java_websocket.WebSocket;

import org.java_websocket.handshake.ClientHandshake;

import org.java_websocket.server.WebSocketServer;

import java.net.InetSocketAddress;

public class TestServer extends WebSocketServer {

private TestServer serverSocket;

private static final String TAG = "TestServer";

public TestServer(int port) {

super(new InetSocketAddress(port));

}

@Override

public void onOpen(WebSocket conn, ClientHandshake handshake) {

//开始连接

}

@Override

public void onClose(WebSocket conn, int code, String reason, boolean remote) {

//服务器关闭

}

@Override

public void onMessage(WebSocket conn, String message) {

//接收消息,做逻辑处理,这里我直接重新返回消息

sendMessage(conn, message);

}

@Override

public void onError(WebSocket conn, Exception ex) {

//异常

}

@Override

public void onStart() {

}

}

启动服务器

public void start(int port) {

serverSocket = new TestServer(port);

serverSocket.start();

}

停止服务器

public void stop() {

serverSocket.stop();

}

发送消息

public void sendMessage(WebSocket socket, String message) {

socket.send(message);

}

举例展示

在线测试工具.

安卓http服务器源码,Android搭建HTTP和WebSocket的服务器端相关推荐

  1. apn服务器源码,android 设置apn

    [实例简介] android 设置apn,包括自动和手动,成熟代码 [实例截图] [核心代码] MyApnDemo └── MyApnDemo ├── AndroidManifest.xml ├── ...

  2. android 快传 源码_最新安卓仿茄子快传APP源码包括服务端源码Android开发快传类项目源码全套...

    适使用范围:  安卓APP茄子快传源码 Android项目源码相似茄子快传的快传项目包括服务端 运行环境:  Android app 源码详细: 本项目是一个基于安卓的相似茄子快传的项目源码,包括安卓 ...

  3. android 快传 源码_安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端...

    适用范围:安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端 演示地址:(以截图为准) 运行环境:Android+PC+web 其他说明: 本项目是一个基于安卓的类似茄子 ...

  4. Android安卓麻将识别源码Demo( 三)

    Android安卓麻将识别源码Demo( 三) 未经过允许不得转载,转载请联系我,如何联系,点我头像. 连载已经完结, 百度网盘测试APP下载地址:  链接:https://pan.baidu.com ...

  5. Android源码环境搭建(aosp Ubuntu 16.04)

    Android源码环境搭建(aosp Ubuntu 16.04) FrameWork入门课视频链接:https://edu.csdn.net/course/detail/30298 FrameWork ...

  6. 采集网站服务器配置,搭建数据采集云服务器源码

    搭建数据采集云服务器源码 内容精选 换一换 云速建站暂不支持自主搭建代码,您可以考虑通过添加高级代码插件实现相关功能.云速建站是一套基于SaaS模式的建站系统,使用的是云服务平台,不止是一台服务器,一 ...

  7. android 群控 网络 adb,逍遥安卓模拟器群控源码

    逍遥安卓模拟器群控源码 @懒鸟 .版本 2 .支持库 iext .子程序 命令adb, 文本型, 公开 .参数 命令1, 文本型 .局部变量 执行文本, 文本型 .局部变量 执行头, 文本型 .局部变 ...

  8. [Android精品源码] Android 仿美团网,探索ListView的A-Z字母排序功能实现选择城市

    Material Design中文版Code4APPPHP100UI4APP 开启辅助访问设为首页收藏本站快捷导航切换到宽版切换风格 石刚 | |我的 |签到打卡 |设置 |消息 |提醒(2) |退出 ...

  9. 最新安卓例子分类源码打包下载

    [原文:http://www.javaapk.com/demodownload] 废话少说,直戳重点.源码最新下载地址: http://yunpan.cn/QTptFRNMIJpeQ 访问密码 381 ...

最新文章

  1. vue 箭头函数兼容性_前端学习计划之VUE学习(二)
  2. CentOS 7.0安装Nvidia驱动
  3. 当javaScript从入门到提高前需要注意的细节:变量部分
  4. 1083. List Grades (25)
  5. 首提 Database Plus 新理念,SphereEx 获数百万美元天使融资,接棒 ShardingSphere 打造新型分布式生态
  6. java smack 例子_java+smack+openfire即时通讯Im(四)
  7. 操作系统(李治军) L11内核级线程
  8. 利用Kubernetes搭建便携式开发环境之MySQL和Redis
  9. python 字典默认会引用 除非深拷贝
  10. 经济情况越不好越要做好这三点
  11. ubuntu12.04 Struts2 配置过程中出现的错误
  12. MySQL 中的 repeate() 函数
  13. 玩转手机摄影 oeasy教程总结
  14. H3C GRE over IPsec实验
  15. ECharts中使用tooltip时鼠标移入抖动问题
  16. 09 TypeError: Descriptors cannot not be created directly.
  17. [SCOI2016]幸运数字
  18. 【Discuz】原系统进入论坛自动注册并进行登录
  19. macbook A1181 小白 换键盘记
  20. Python 连接 ftp 服务器操作

热门文章

  1. 2019ICPC亚洲区域赛日程与2019CCPC比赛日程
  2. UVA10344 23 out of 5【暴力+DFS】
  3. NUC1372 Bull Math【大数】
  4. HDU2203 亲和串【字符串】
  5. C++实现的大整数分解Pollard's rho算法程序
  6. σ 代数与测度(measures)
  7. 算法(algorithm)、模型(model)与框架(framework)
  8. python-levenshtein —— 字符串相似度的计算
  9. 域名与DNS(域名解析服务器)
  10. 机器学习基础(五十二)—— 朴素贝叶斯细节