Java 安卓中的安全WebSocket服务器

Java 安卓中的安全WebSocket服务器,java,android,websocket,Java,Android,Websocket,我正在使用koush提供的GitHub库。我需要这个库来创建WebSocket服务器,我能够创建它 private static List<WebSocket> webSockets = new ArrayList<WebSocket>(); private static AsyncHttpServer httpServer = new AsyncHttpServer(); 这个实现工作得非常好。 但是我想使用wss协议,在那里我可以为websocket使用JKS(ja

我正在使用koush提供的GitHub库。我需要这个库来创建WebSocket服务器,我能够创建它

private static List<WebSocket> webSockets = new ArrayList<WebSocket>();
private static AsyncHttpServer httpServer = new AsyncHttpServer();
这个实现工作得非常好。 但是我想使用
wss
协议,在那里我可以为websocket使用JKS(javakeystore)证书

有没有办法做到这一点?如果没有这个图书馆,还有其他图书馆可以使用吗?任何例子都将不胜感激


谢谢

试试看。我没用过。不过,该公司表示,它支持Java服务器和支持wss的Android客户端。祝你好运

老实说,我不知道我是对的。我碰巧遇到了这件事

你认为你可以用java来做吗

我想基本结构是:

MyHTTPDTask 我的服务器
import java.io.IOException;
进口fi.iki.elonen.NanoHTTPD;
公共类MyServer扩展了NanoHTTPD{
专用最终静态int端口=8080;
public MyServer()引发IOException{
超级(港口);
start();
System.out.println(“\n正在运行!将浏览器指向http://localhost:8080/ \n”);
}
@凌驾
公众回应服务(IHTTP会议){
String msg=“Hello server\n”;
msg+=“我们提供”+session.getUri()+”!

”; 返回newFixedLengthResponse(msg+“\n”); } }
对于服务器端,为什么不使用标准API,
javax.websocket
?它是JavaEE的一部分

关于Android方面,请参见“”

public static void createWebSocket() {
    httpServer.websocket("/", new AsyncHttpServer.WebSocketRequestCallback() {
        @Override
        public void onConnected(final WebSocket webSocket, AsyncHttpServerRequest request) {
            webSockets.add(webSocket);

            webSocket.setClosedCallback(new CompletedCallback() {
                @Override
                public void onCompleted(Exception ex) {
                    Log.d(TAG, "onCompleted");
                }
            });

            webSocket.setStringCallback(new WebSocket.StringCallback() {
                @Override
                public void onStringAvailable(String s) {
                    Log.d(TAG, "onStringAvailable");
                }
            });
        }
    });

    httpServer.listen(8080);
}
import java.io.IOException;
import java.util.Map;

import fi.iki.elonen.NanoHTTPD;

class MyHTTPDTask extends AsyncTask {
    private MyServer mHTTPD;

    @Override
    protected Object doInBackground(Object... params) {
        mHTTPD = new MyServer();
        mHTTPD.makeSecure(NanoHTTPD.makeSSLSocketFactory(R.string.keystore.jks, "password".toCharArray()), null);
    }
}
import java.io.IOException;

import fi.iki.elonen.NanoHTTPD;

public class MyServer extends NanoHTTPD {
    private final static int PORT = 8080;

    public MyServer() throws IOException {
        super(PORT);
        start();
        System.out.println( "\nRunning! Point your browers to http://localhost:8080/ \n" );
    }

    @Override
    public Response serve(IHTTPSession session) {
        String msg = "<html><body><h1>Hello server</h1>\n";
        msg += "<p>We serve " + session.getUri() + " !</p>";
        return newFixedLengthResponse( msg + "</body></html>\n" );
    }
}