安卓http服务器源码,Android搭建HTTP和WebSocket的服务器端
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的服务器端相关推荐
- apn服务器源码,android 设置apn
[实例简介] android 设置apn,包括自动和手动,成熟代码 [实例截图] [核心代码] MyApnDemo └── MyApnDemo ├── AndroidManifest.xml ├── ...
- android 快传 源码_最新安卓仿茄子快传APP源码包括服务端源码Android开发快传类项目源码全套...
适使用范围: 安卓APP茄子快传源码 Android项目源码相似茄子快传的快传项目包括服务端 运行环境: Android app 源码详细: 本项目是一个基于安卓的相似茄子快传的项目源码,包括安卓 ...
- android 快传 源码_安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端...
适用范围:安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端 演示地址:(以截图为准) 运行环境:Android+PC+web 其他说明: 本项目是一个基于安卓的类似茄子 ...
- Android安卓麻将识别源码Demo( 三)
Android安卓麻将识别源码Demo( 三) 未经过允许不得转载,转载请联系我,如何联系,点我头像. 连载已经完结, 百度网盘测试APP下载地址: 链接:https://pan.baidu.com ...
- Android源码环境搭建(aosp Ubuntu 16.04)
Android源码环境搭建(aosp Ubuntu 16.04) FrameWork入门课视频链接:https://edu.csdn.net/course/detail/30298 FrameWork ...
- 采集网站服务器配置,搭建数据采集云服务器源码
搭建数据采集云服务器源码 内容精选 换一换 云速建站暂不支持自主搭建代码,您可以考虑通过添加高级代码插件实现相关功能.云速建站是一套基于SaaS模式的建站系统,使用的是云服务平台,不止是一台服务器,一 ...
- android 群控 网络 adb,逍遥安卓模拟器群控源码
逍遥安卓模拟器群控源码 @懒鸟 .版本 2 .支持库 iext .子程序 命令adb, 文本型, 公开 .参数 命令1, 文本型 .局部变量 执行文本, 文本型 .局部变量 执行头, 文本型 .局部变 ...
- [Android精品源码] Android 仿美团网,探索ListView的A-Z字母排序功能实现选择城市
Material Design中文版Code4APPPHP100UI4APP 开启辅助访问设为首页收藏本站快捷导航切换到宽版切换风格 石刚 | |我的 |签到打卡 |设置 |消息 |提醒(2) |退出 ...
- 最新安卓例子分类源码打包下载
[原文:http://www.javaapk.com/demodownload] 废话少说,直戳重点.源码最新下载地址: http://yunpan.cn/QTptFRNMIJpeQ 访问密码 381 ...
最新文章
- vue 箭头函数兼容性_前端学习计划之VUE学习(二)
- CentOS 7.0安装Nvidia驱动
- 当javaScript从入门到提高前需要注意的细节:变量部分
- 1083. List Grades (25)
- 首提 Database Plus 新理念,SphereEx 获数百万美元天使融资,接棒 ShardingSphere 打造新型分布式生态
- java smack 例子_java+smack+openfire即时通讯Im(四)
- 操作系统(李治军) L11内核级线程
- 利用Kubernetes搭建便携式开发环境之MySQL和Redis
- python 字典默认会引用 除非深拷贝
- 经济情况越不好越要做好这三点
- ubuntu12.04 Struts2 配置过程中出现的错误
- MySQL 中的 repeate() 函数
- 玩转手机摄影 oeasy教程总结
- H3C GRE over IPsec实验
- ECharts中使用tooltip时鼠标移入抖动问题
- 09 TypeError: Descriptors cannot not be created directly.
- [SCOI2016]幸运数字
- 【Discuz】原系统进入论坛自动注册并进行登录
- macbook A1181 小白 换键盘记
- Python 连接 ftp 服务器操作