Android搭建HTTP和WebSocket的服务器端 | 您所在的位置:网站首页 › 安卓ssr启动服务器失败 › 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); } 举例展示在线测试工具. |
CopyRight 2018-2019 实验室设备网 版权所有 |