我正在使用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);
}
}
所以现在我的问题是,“拒绝连接问题”的原因可能是什么?
谢谢。