Angular is connecting on my spring boot app
However it connects/disconnects
This is my angular service
Angular cant send or receive
export class WebsocketService {
isBrowser = false;
socket:any;
public message$: BehaviorSubject<string> = new BehaviorSubject('');
constructor(
@Inject(PLATFORM_ID) private platformId: Object
) {
this.isBrowser = isPlatformBrowser(this.platformId)
if (this.isBrowser) {
try{
this.socket = io("ws://ipV4here:8081?room=chatRoom123",{})
console.log(this.socket)
}catch (e){
console.error(e)
}
}
console.log( this.isBrowser)
}
sendMessage(message: any) {
if (this.isBrowser && this.socket) {
this.socket.emit('send_message', message);
console.log(message)
} else {
console.error('WebSocket connection not available');
}
}
getNewMessage ():Observable<any> {
if (this.isBrowser && this.socket) {
console.log("receiving: ")
this.socket.on('get_message', (message: any) =>{
console.log(message)
this.message$.next(message);
});
}
else {
console.error('WebSocket connection not available');
}
return this.message$.asObservable();
};
}
This is my class SocketIOModule
@Slf4j
@Component
public class SocketIOModule {
private final SocketIOServer server;
private final SocketIOService socketService;
public SocketIOModule(SocketIOServer server, SocketIOService socketService) {
this.server = server;
this.socketService = socketService;
server.addConnectListener(onConnected());
server.addDisconnectListener(onDisconnected());
server.addEventListener("send_message", Message.class, onChatReceived());
}
private DataListener<Message> onChatReceived() {
return (senderClient, data, ackSender) -> {
log.info(data.toString());
service.sendMessage(data.getRoom(),"get_message", senderClient,data.getMessage());
};
}
private ConnectListener onConnected() {
return (client) -> {
final String roomVariable = client.getHandshakeData().getSingleUrlParam("room");
final String room = Objects.nonNull(roomVariable)?roomVariable:"temp";
System.out.println(room);
client.joinRoom(room);
log.info("Socket ID[{}] Connected to socket", client.getSessionId().toString());
};
}
private DisconnectListener onDisconnected() {
return client -> {
log.info("Client[{}] - Disconnected from socket", client.getSessionId().toString());
};
}
}
When i test it on postman backend receives the message so infer that the angular must be the one that have errors on it
send or receive data from angular
New contributor
kaguya shinomiya is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.