Code: Select all
A WebSocket frame was sent with an unrecognised opCode of [7]
< /code>
Hier ist die Feder-Boot-Websocket-Konfiguration, die ich verwende: < /p>
@Configuration
@EnableWebSocketMessageBroker
public class WebsocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chess-websocket").setAllowedOrigins("http://localhost:4200").withSockJS();
}
}
< /code>
Und dies ist der Angular-Code, den ich verwende, um eine Verbindung zum WebSocket herzustellen: < /p>
import { Component, OnInit } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { Client } from '@stomp/stompjs';
import SockJS from 'sockjs-client';
@Component({
selector: 'app-root',
standalone: true,
imports: [RouterOutlet],
templateUrl: './app.component.html',
styleUrl: './app.component.css',
})
export class AppComponent implements OnInit {
title = 'client';
ngOnInit(): void {
const socket = new SockJS('http://localhost:8080/chess-websocket');
const stompClient = new Client({
webSocketFactory: () => socket,
debug: (msg) => console.log(msg),
onConnect: () => console.log('Connected'),
onStompError: (frame) => console.error('STOMP Error:', frame),
});
stompClient.activate();
}
}
Code: Select all
"dependencies": {
"@angular/animations": "^18.2.0",
"@angular/common": "^18.2.0",
"@angular/compiler": "^18.2.0",
"@angular/core": "^18.2.0",
"@angular/forms": "^18.2.0",
"@angular/platform-browser": "^18.2.0",
"@angular/platform-browser-dynamic": "^18.2.0",
"@angular/router": "^18.2.0",
"@stomp/stompjs": "^7.0.0",
"rxjs": "~7.8.0",
"sockjs-client": "^1.6.1",
"tslib": "^2.3.0",
"zone.js": "~0.14.10"
}
Code: Select all
org.springframework.boot
spring-boot-starter-websocket
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
< /code>
Dies scheint mit dem von der Client-Seite gesendeten WebSocket-Frame in Verbindung zu stehen. Ich habe versucht, Sockjs
[*] Alle relevanten Abhängigkeiten aktualisiert, einschließlich @stomp/stompjs und sockjs-client .