如何通过websocket从非Web Java应用程序向angular应用程序发送消息?

时间:2018-12-28 11:37:31

标签: java angular websocket

我正在使用angular构建基于Web的仪表板,以运行我们的应用程序的自动化测试,我想在仪表板上实时显示测试执行过程中生成的日志。问题是我无法将自动化代码库中的websocket服务器与角度仪表板中的客户端连接。我用谷歌搜索我的问题,但只发现客户端和服务器都基于Web的示例。希望有人能为我指明正确的方向,以实现我正在尝试做的事情。

基本上,我正在尝试使用websocket将测试生成的日志发送到angular应用程序。

更新:

我找到了一种连接到javascript的方法,但现在遇到了Error in connection establishment: net::ERR_CONNECTION_REFUSED错误。

这是我的代码设置:

WebSocket服务器(测试脚本):

public class TestStepBroadcaster {
ServerSocket sersock;
Socket sock;
OutputStream ostream;
BufferedWriter bw1;
PrintWriter pwrite;

     public TestStepBroadcaster()  {
           try {
                sersock = new ServerSocket(3002);
                sock = sersock.accept();
                ostream = sock.getOutputStream();
             } catch (Exception e) {
               e.printStackTrace();
             }
           pwrite = new PrintWriter(ostream, true);
     }
   // method that we call from client code to send message
     public void broadcast(String message) throws IOException {
           pwrite.println(message);
           pwrite.flush();
     }

     public void close() throws IOException {
         bw1.close();
         ostream.close();
         sock.close();
         sersock.close();
     }
}

WebSocket客户端(Angular应用):

export class AppComponent implements OnInit {
     title = 'my-dream-app';
     websocet: WebSocket;

     constructor(private channel: ChannelService) {
        console.log('from app constructor')
       // this.websocet = new WebSocket('ws://echo.websocket.org');
        this.websocet = new WebSocket('ws://127.0.0.1:3002');

        this.websocet.onmessage = function (event) {
            console.log(event.data);
        };
        this.websocet.onopen = function (evt) {
            console.log("onopen.");
        };
        this.websocet.onclose = function (evt) {
         console.log("onclose.");
        };
        this.websocet.onerror = function (evt) {
         console.log("Error!");
      };
  }
  ngOnInit(): void {
      this.channel.data.set('isLoggedIn', false);
  }
}

所以现在我的问题是,“拒绝连接问题”的原因可能是什么?

谢谢。

0 个答案:

没有答案