如何将java中的websocket客户端与nodejs中的websocket服务器连接起来?

如何将java中的websocket客户端与nodejs中的websocket服务器连接起来?,java,android,node.js,heroku,java-websocket,Java,Android,Node.js,Heroku,Java Websocket,我正在基于WebSocket(WebSocket客户端库:,他的文档:)为Android开发一个消息传递应用程序(用Java编写),但客户端似乎无法与服务器连接(用nodeJs编写,与herokuapp一起分发) 经过一些在线研究,我试图在清单中添加这些代码行,但似乎无论如何都不起作用: <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-p

我正在基于WebSocket(WebSocket客户端库:,他的文档:)为Android开发一个消息传递应用程序(用Java编写),但客户端似乎无法与服务器连接(用nodeJs编写,与herokuapp一起分发)

经过一些在线研究,我试图在清单中添加这些代码行,但似乎无论如何都不起作用:

<uses-permission android:name="android.permission.INTERNET" > 
</uses-permission>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
 </uses-permission>
客户代码(主要活动):

客户端代码(webSocket类实现):


我正在开发一个类似的应用程序,发现了一个问题。将客户端连接到服务器的线程完成后,将调用客户端上的@OnMessage处理程序。你经历过同样的事情吗?我尝试过tomcat/tyrus库,但它们都遵循WebSocket JSR。我正在开发一个类似的应用程序,发现了一个问题。将客户端连接到服务器的线程完成后,将调用客户端上的@OnMessage处理程序。你经历过同样的事情吗?我尝试过tomcat/tyrus库,但它们都遵循WebSocket JSR。
const SocketServer = require('ws').Server;

const port = process.env.PORT || 3000;

const server = require('express')().listen(port);
const wsServer = new SocketServer({ server });

wsServer.on('connection', (ws) => {

    console.log('connected');

    ws.on('message', (arrayData) => {

        console.log('a message has arrived');
    });
}); 
package com.example.chat;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import java.net.URI;
import java.net.URISyntaxException;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        connectToServer();
    }

    void connectToServer(){
        URI uri;

        try {
            uri = new URI("wss://earthonline.herokuapp.com");
        } catch (URISyntaxException e) {
            return;
        }

        new webSocket(uri).connect();
    }
}
package com.example.chat;

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;

import java.net.URI;
import java.nio.ByteBuffer;

public class webSocket extends WebSocketClient {

    webSocket(URI uri){
            super(uri);
    }

    @Override
    public void onOpen(ServerHandshake handshakedata) {
        send("Hello, it is me. Mario :)");
        System.out.println("new connection opened");
    }

    @Override
    public void onClose(int code) {
        System.out.println("closed with exit code " + code);
    }

    @Override
    public void onMessage(String message) {
        System.out.println("received message: " + message);
    }

    @Override
    public void onMessage(ByteBuffer message) {
        System.out.println("received ByteBuffer");
    }

    @Override
    public void onError(Exception ex) {
        System.err.println("an error occurred:" + ex);
    }
}