Android搭建HTTP和WebSocket的服务器端 您所在的位置:网站首页 安卓ssr启动服务器失败 Android搭建HTTP和WebSocket的服务器端

Android搭建HTTP和WebSocket的服务器端

2023-09-19 14:48| 来源: 网络整理| 查看: 265

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); } 举例展示

在线测试工具.

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有