🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

3395閲覧

SpringBootとVue.jsを使ってWebSocketの通信を行う際、404エラーが発生する

JsoHaya

総合スコア17

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/03/06 15:52

編集2021/03/06 15:53

SpringBootの公式?を参考に、
vueとWebSocketをつかったチャットアプリのようなものを作成しようとしています。

SockJSでSpringBootのエンドポイントである「websocket/gs-guide-websocket」にアクセスしようとすると404が発生してしまいます。

以下にソースコードを記載しておきます。よろしくお願いいたします。

vue

1 created: function() { 2 var socket = new SockJS("/websocket/gs-guide-websocket"); // ここで404が出てそう? 3 var stompClient = Stomp.over(socket); 4 stompClient.connect({}, function (frame) { 5 console.log('Connected: ' + frame); 6 stompClient.subscribe('/topic/test', function (test) { 7 console.log(test); 8 }); 9 });

vueconfig

1devServer: { 2 disableHostCheck: true, 3 proxy: { 4 "/websocket": { 5 target: 'http://localhost:8083/', 6 ws: true, 7 changeOrigin: true 8 }

Java

1@Configuration 2@EnableWebSocketMessageBroker 3public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { 4 5 @Override 6 public void configureMessageBroker(MessageBrokerRegistry config) { 7 config.enableSimpleBroker("/topic"); 8 config.setApplicationDestinationPrefixes("/app"); 9 } 10 11 @Override 12 public void registerStompEndpoints(StompEndpointRegistry registry) { 13 registry.addEndpoint("/gs-guide-websocket").withSockJS(); 14 } 15}

Java

1@MessageMapping("test") 2 @SendTo("/topic/test") 3 public Test test(String test) { 4 Test testResponse = new Test(); 5 testResponse.setOK("OK"); 6 return testResponse; 7 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

以下のように修正したら404エラーが解消されました。
vue.config使ってできる方法があるのでしょうか

vue

1created: function() { 2 var socket = new SockJS("http://localhost:8083/gs-guide-websocket"); //★ vue.configじゃなくて直接指定 3 var stompClient = Stomp.over(socket); 4 stompClient.connect({}, function (frame) { 5 console.log('Connected: ' + frame); 6 stompClient.subscribe('/topic/test', function (test) { 7 console.log(test); 8 }); 9 });

Java

1@Configuration 2@EnableWebSocketMessageBroker 3public class WebSocketConfig implements WebSocketMessageBrokerConfigurer { 4 5 @Override 6 public void configureMessageBroker(MessageBrokerRegistry config) { 7 config.enableSimpleBroker("/topic"); 8 config.setApplicationDestinationPrefixes("/app"); 9 } 10 11 @Override 12 public void registerStompEndpoints(StompEndpointRegistry registry) { 13 registry.addEndpoint("/gs-guide-websocket") 14 .setAllowedOrigins("http://localhost:8080") // ★追加 15 .withSockJS(); 16 } 17 18}

投稿2021/03/06 16:28

JsoHaya

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問