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'

创建服务器

  1. 创建服务器
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();
  1. 启动服务器
  private void startServer() {    if (!mServer.isRunning()) {      mServer.startup();//启动    }  }
  1. 退出服务器
  private void stopServer() {    mServer.shutdown();//退出  }

举例展示

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

  1. 配置网址路径等等
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;@Configpublic 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());  }}

Android搭建HTTP和WebSocket的服务器端_第1张图片
2. 访问登录界面

package com.peanut.myapplication.http.controller;import com.yanzhenjie.andserver.annotation.Controller;import com.yanzhenjie.andserver.annotation.GetMapping;@Controllerpublic class PageController {  @GetMapping(path = "/")  public String index() {    return "forward:/index.html";//访问项目路径下网页  }}

Java-WebSocket搭建WebSocket

配置依赖

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

创建服务器

  1. 创建服务器

继承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() {    }}
  1. 启动服务器
    public void start(int port) {        serverSocket = new TestServer(port);        serverSocket.start();    }
  1. 停止服务器
    public void stop() {        serverSocket.stop();    }
  1. 发送消息
    public void sendMessage(WebSocket socket, String message) {        socket.send(message);    }

举例展示

在线测试工具.

Android搭建HTTP和WebSocket的服务器端_第2张图片

更多相关文章

  1. Android 注解基本使用
  2. Android SDK Document 框架导读的翻译和注解[1]
  3. Android作为客户端,采用Netty与服务器通信
  4. android > ImageView 加载本地/服务器图片
  5. Android客户端解析web服务器XML数据小问题
  6. android与tomcat服务器交互实例
  7. Android Tcp服务器端
  8. android上传文件到服务器

随机推荐

  1. Android 常用技术
  2. android 使用signingConfigs进行打包
  3. Android studio Gradle插件从3.0.0降到2.
  4. Android实现动态自动匹配输入内容功能
  5. 【Android】AlertDialog中的EditText不能
  6. Android:横屏时禁止输入法全屏
  7. Android图片圆角转换 RoundedImageView开
  8. 第八章 Activity与Activity调用栈分析
  9. Android:android生命周期(详细总结)
  10. android L nexus5 刷机