Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Java女子部
14,135 views
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
2016.5.21 JJUG CCC 2016 Spring M-3 Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう! by Java女子部 #ccc_m3
Engineering
◦
Read more
18
Save
Share
Embed
Embed presentation
Download
Downloaded 43 times
1
/ 81
2
/ 81
3
/ 81
4
/ 81
5
/ 81
6
/ 81
7
/ 81
8
/ 81
9
/ 81
10
/ 81
11
/ 81
12
/ 81
13
/ 81
14
/ 81
15
/ 81
16
/ 81
17
/ 81
18
/ 81
19
/ 81
20
/ 81
21
/ 81
22
/ 81
23
/ 81
24
/ 81
25
/ 81
26
/ 81
27
/ 81
28
/ 81
29
/ 81
30
/ 81
31
/ 81
32
/ 81
33
/ 81
34
/ 81
35
/ 81
36
/ 81
37
/ 81
38
/ 81
39
/ 81
Most read
40
/ 81
41
/ 81
Most read
42
/ 81
43
/ 81
44
/ 81
45
/ 81
46
/ 81
47
/ 81
48
/ 81
49
/ 81
50
/ 81
Most read
51
/ 81
52
/ 81
53
/ 81
54
/ 81
55
/ 81
56
/ 81
57
/ 81
58
/ 81
59
/ 81
60
/ 81
61
/ 81
62
/ 81
63
/ 81
64
/ 81
65
/ 81
66
/ 81
67
/ 81
68
/ 81
69
/ 81
70
/ 81
71
/ 81
72
/ 81
73
/ 81
74
/ 81
75
/ 81
76
/ 81
77
/ 81
78
/ 81
79
/ 81
80
/ 81
81
/ 81
More Related Content
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
Jbatch実践入門 #jdt2015
by
Norito Agetsuma
PDF
SpringBootTest入門
by
Yahoo!デベロッパーネットワーク
PPTX
MQ入門
by
HIRA
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PDF
MariaDBとMroongaで作る全言語対応超高速全文検索システム
by
Kouhei Sutou
PDF
ヤフー発のメッセージキュー「Pulsar」のご紹介
by
Yahoo!デベロッパーネットワーク
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
Jbatch実践入門 #jdt2015
by
Norito Agetsuma
SpringBootTest入門
by
Yahoo!デベロッパーネットワーク
MQ入門
by
HIRA
RESTful Web アプリの設計レビューの話
by
Takuto Wada
MariaDBとMroongaで作る全言語対応超高速全文検索システム
by
Kouhei Sutou
ヤフー発のメッセージキュー「Pulsar」のご紹介
by
Yahoo!デベロッパーネットワーク
What's hot
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PDF
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
PDF
そんなトランザクションマネージャで大丈夫か?
by
takezoe
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
by
NTT DATA Technology & Innovation
PDF
コンテナで始める柔軟な AWS Lambda 生活
by
Drecom Co., Ltd.
PDF
Rest ful api設計入門
by
Monstar Lab Inc.
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
PDF
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
PPTX
クラウドでも非機能要求グレードは必要だよね
by
YoshioSawada
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PDF
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
by
Rakuten Group, Inc.
PDF
Prometheus monitoring from outside of Kubernetes 〜どうして我々はKubernetes上のPromet...
by
whywaita
PDF
React vac pattern
by
NAVER Engineering
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
PDF
インフラ野郎 Azureチーム at クラウド boost
by
Toru Makabe
PDF
Spring Framework ふりかえりと4.3新機能
by
kimulla
PDF
時を超えた JavaScript の道
by
Teppei Sato
PDF
Vue.js
by
Jadson Santos
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
WebSocket / WebRTCの技術紹介
by
Yasuhiro Mawarimichi
そんなトランザクションマネージャで大丈夫か?
by
takezoe
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
by
NTT DATA Technology & Innovation
コンテナで始める柔軟な AWS Lambda 生活
by
Drecom Co., Ltd.
Rest ful api設計入門
by
Monstar Lab Inc.
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
クラウドでも非機能要求グレードは必要だよね
by
YoshioSawada
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
by
Rakuten Group, Inc.
Prometheus monitoring from outside of Kubernetes 〜どうして我々はKubernetes上のPromet...
by
whywaita
React vac pattern
by
NAVER Engineering
Redisの特徴と活用方法について
by
Yuji Otani
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
インフラ野郎 Azureチーム at クラウド boost
by
Toru Makabe
Spring Framework ふりかえりと4.3新機能
by
kimulla
時を超えた JavaScript の道
by
Teppei Sato
Vue.js
by
Jadson Santos
Viewers also liked
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
by
Takakiyo Tanaka
PDF
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
PPTX
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
by
hajime funaki
PDF
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
by
Hiroyuki Ohnaka
PDF
プロダクトに 1 から Vue.js を導入した話
by
Shohei Okada
PDF
とにかく楽してVue.jsでTypeScriptを使いたい
by
さくらインターネット株式会社
PDF
Jjugccc2017spring-postgres-ccc_m1
by
Kosuke Kida
PDF
2017spring jjug ccc_f2
by
Kazuhiro Wada
PDF
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
by
Hikari Fukasawa
PDF
Arachne Unweaved (JP)
by
Ikuru Kanuma
PPTX
Java 9 and Future #jjug
by
Yuji Kubota
PPTX
Jjug ccc
by
Tanaka Yuichi
PPTX
サーバサイドエンジニアが知りたいIoTの話
by
Yuki Takahashi
PPTX
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
PPTX
Rancher LT Talk 20170126
by
Tetsurou Yano
PDF
Java libraries you can't afford to miss
by
Andres Almiray
PPTX
Java女子部勉強会参加した感想
by
Java女子部
PDF
Java女子部について
by
Java女子部
PDF
JavaOne 2015 - Java SE Update
by
Yuichi Sakuraba
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
by
Takakiyo Tanaka
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
by
hajime funaki
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
by
Hiroyuki Ohnaka
プロダクトに 1 から Vue.js を導入した話
by
Shohei Okada
とにかく楽してVue.jsでTypeScriptを使いたい
by
さくらインターネット株式会社
Jjugccc2017spring-postgres-ccc_m1
by
Kosuke Kida
2017spring jjug ccc_f2
by
Kazuhiro Wada
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
by
Hikari Fukasawa
Arachne Unweaved (JP)
by
Ikuru Kanuma
Java 9 and Future #jjug
by
Yuji Kubota
Jjug ccc
by
Tanaka Yuichi
サーバサイドエンジニアが知りたいIoTの話
by
Yuki Takahashi
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
Rancher LT Talk 20170126
by
Tetsurou Yano
Java libraries you can't afford to miss
by
Andres Almiray
Java女子部勉強会参加した感想
by
Java女子部
Java女子部について
by
Java女子部
JavaOne 2015 - Java SE Update
by
Yuichi Sakuraba
Similar to Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
PDF
Spring AMQP × RabbitMQ
by
Keisuke Nishitani
PDF
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
by
Takakiyo Tanaka
PDF
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
by
Toshiaki Maki
PDF
WebSocket + Node.jsでつくるチャットアプリ
by
Kohei Kadowaki
PDF
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
by
Kazuhiro Hara
PDF
WebSocket Chat App Hands On on Microsoft Azure
by
Yoshio Terada
PDF
SocketStream入門
by
Kohei Kadowaki
PDF
AndroidでWebSocket
by
Kohei Kadowaki
PDF
女子中高生とTwitter4J #twtr_hack
by
Itsuki Kuroda
PDF
Playで作るwebsocketサーバ
by
ke-m kamekoopa
PPTX
JavaOne2014報告会資料
by
Mitsuyasu Tsuhako
PDF
Spring BootでHello Worldのその先へ
by
Masatoshi Fujino
PDF
Public 20100828 j_ruby_kaigi_10things_jror_with_javaee
by
Yoshiharu Hashimoto
PDF
これから利用拡大?WebSocket
by
AdvancedTechNight
PDF
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
DOCX
ネットワーク第5回
by
Yukiko Kato
PDF
[Ps11]ネットワーク第4回
by
Yukiko Kato
PPTX
JavaプログラマのためのWebSocket概要
by
Shumpei Shiraishi
PDF
UnicastWS vol.1
by
Unicast Inc.
PDF
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
Spring AMQP × RabbitMQ
by
Keisuke Nishitani
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
by
Takakiyo Tanaka
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
by
Toshiaki Maki
WebSocket + Node.jsでつくるチャットアプリ
by
Kohei Kadowaki
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
by
Kazuhiro Hara
WebSocket Chat App Hands On on Microsoft Azure
by
Yoshio Terada
SocketStream入門
by
Kohei Kadowaki
AndroidでWebSocket
by
Kohei Kadowaki
女子中高生とTwitter4J #twtr_hack
by
Itsuki Kuroda
Playで作るwebsocketサーバ
by
ke-m kamekoopa
JavaOne2014報告会資料
by
Mitsuyasu Tsuhako
Spring BootでHello Worldのその先へ
by
Masatoshi Fujino
Public 20100828 j_ruby_kaigi_10things_jror_with_javaee
by
Yoshiharu Hashimoto
これから利用拡大?WebSocket
by
AdvancedTechNight
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
ネットワーク第5回
by
Yukiko Kato
[Ps11]ネットワーク第4回
by
Yukiko Kato
JavaプログラマのためのWebSocket概要
by
Shumpei Shiraishi
UnicastWS vol.1
by
Unicast Inc.
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
1.
Spring Bootで チャットツールを作りながら Webの仕組みを理解しよう! Java女子部 presents 2016.5.21 #jjug_ccc #ccc_m3
2.
本日のメンバー #jjug_ccc #ccc_m3
3.
■ちか Java歴7年くらい。 金融系のSIer ■ゆう 最近Javaを始めたばかりの 初心者。 エンジニア歴は2年ちょい。 講師講師 #jjug_ccc #ccc_m3
4.
■えりこ WebアプリケーションSE エンジニア8年生。 ■あや ラーメン二郎が好きな エンジニア2年生。 チューター #jjug_ccc #ccc_m3
5.
■とぅん Java暦半年ぐらいのエンジニ ア4年生。品質管理とか やってます。 ■よこな JJUG司会兼チューター。 エンジニア4年生。 チューター #jjug_ccc #ccc_m3
6.
ワークショップの概要説明 #jjug_ccc #ccc_m3
7.
チャットツールの制作を通じて Webの仕組みを理解する! 今回の目標本日の目標 #jjug_ccc #ccc_m3
8.
・基礎的な概念説明 (Webの仕組み、Spring Bootについて) ・ハンズオン導入・WebSocketについて ・ハンズオン ・まとめ 全体の流れ #jjug_ccc #ccc_m3
9.
Webの仕組みについて #jjug_ccc #ccc_m3
10.
情報をやりとりする通信網のこと。 この通信網によって 世界中とやりとり することができる。 そもそもインターネットとは? #jjug_ccc #ccc_m3
11.
クライアントが情報を要求すると、 サーバから情報が返ってくる。 クライアント サーバ リクエスト レスポンス 通信方法について #jjug_ccc #ccc_m3
12.
Spring Bootについて #jjug_ccc #ccc_m3
13.
Java Spring Java JavaEE Ruby
Rails Python Django 言語を扱いやすく パッケージングしたもの = フレームワーク Springって何? #jjug_ccc #ccc_m3
14.
Spring BootJava Spring Java
JavaEE Ruby Rails Python Django フレームワーク(コンポーネントの集合)を さらに使いやすくしたフレームワーク じゃあ、Spring Bootって何? #jjug_ccc #ccc_m3
15.
・アノテーション ・DIコンテナ ・AOP アノテーションでクラス・メソッド・変数に目印を つけてフレームワークに解釈させる ⇒ 設定ファイルの代わりになる class Chat @RestController Spring Bootの特徴 #jjug_ccc
#ccc_m3 class Chat
16.
アノテーション名 記載場所 説明 @SpringBootAppli cation Mainクラス
パッケージ内のクラスと設定を自 動的に読み込む @RestController クラス WebAPI用のコントローラー @Configuration クラス 設定クラス ソースコードでSpringの設定を実 装できる @RequestMapping クラス メソッド URLに紐づけて、アクセスできるよ うに設定する @Autowired メソッド フィールド 実装クラスを自動的にインジェク ションする(DIする) 基本のアノテーション(Spring) #jjug_ccc #ccc_m3
17.
ハンズオン 1章 -文字列を返すWebアプリケーションを 作ってみよう!-
18.
リポジトリ https://github.com/java-women/ChatToolForBeginners/ プロジェクト chat-exercise ハンズオン作業用 chat-tutorial 完成形 環境構築手順 https://git.io/vro1X 事前準備 1章
19.
ブラウザ アマゾンのリクエストページ これから作るもの 1章 ①リクエストを送信 ③レスポンスを受信 ②リクエストを受け取り ごにょごにょ処理する 商品の詳細ページ
20.
ブラウザ http://localhost:8080/javajo Hello World! これから作るもの 1章 ①リクエストを送信 ③レスポンスを受信 ②リクエストを受け取り ごにょごにょ処理する ここを 作るよ
21.
@SpringBootApplication public class App
{ public static void main(String[] args) { SpringApplication.run(App.class, args); } } javajo > App.java 1章 Spring Bootの起動クラスを確認する
22.
HelloControllerクラスにもアノテーションを 付与します。 @RestController public class HelloController
{ } 1章javajo.controller > HelloController.java 1章
23.
・helloメソッドを作成します。 ・helloメソッドにアノテーションを付与します。 String hello() { return
"Hello World!"; } @RequestMapping(value = "/javajo") String hello() { return "Hello World!"; } javajo.controller > HelloController.java 1章
24.
アプリケーションを起動して、 http://localhost:8080/javajo/ にアクセスしてみよう! 1章javajo.controller > HelloController.java
1章 Eclipse IntelliJApp.javaを 右クリック>run maven>bootrun 起動方法
25.
下記画面が表示されれば、成功! 1章Hello World動作確認 1章
26.
ブラウザ サーバ @RestController public class HelloController { @RequestMapping(value =
"/javajo") String hello() { return "Hello World!"; } } http://localhost:8080 /javajo Hello World! 解説 1章
27.
WebSocketについて #jjug_ccc #ccc_m3
28.
WebSocket 聞いたことある人?
29.
サーバ・クライアント間で接続が確立された ら、双方向通信(サーバからもクライアントから もデータの送信)が行える技術仕様 WebSocketとは? #jjug_ccc #ccc_m3
30.
WebSocket(双方向通信) Client A #jjug_ccc #ccc_m3
31.
WebSocket(双方向通信) Client A #jjug_ccc #ccc_m3 こんにちは
32.
WebSocket(双方向通信) Client A #jjug_ccc #ccc_m3 こんにちは ClientB
33.
WebSocket(双方向通信) Client A #jjug_ccc #ccc_m3 こんにちは ClientB こんばんはこんばんは こんばんは
34.
WebSocket(双方向通信) Client A #jjug_ccc #ccc_m3 こんにちは ClientB こんばんはこんばんは こんばんは ※1度接続が確立されればデータがリアルタイム で送受信可能! ※同じサーバに接続しているユーザはデータを共 有する
35.
ハンズオン2章 -チャットを作ってみよう!- #jjug_ccc #ccc_m3
36.
チャットツールの作成内容 2章 ①WebSocketへの接続要求 ⑥WebSocketコネクション切断 ④メッセージ送信 ⑤メッセージ受信 ②WebSocketコネクション確立 ③メッセージ受信時の挙動設定
37.
チャットツールの作成内容 2章 Controller @MessageMapping("/message") @SendTo(value= "/topic/messages") MessageBroker /message /app/message ChatForm @EnableWebSocketMessageBroker /topic/messages
38.
<dependencies> ・・・・・省略・・・・・ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket </artifactId> </dependency> ・・・・・省略・・・・・ </dependencies> 2章pom.xml の内容を確認する 2章
39.
<dependencies> ・・・・・省略・・・・・ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket </artifactId> </dependency> ・・・・・省略・・・・・ </dependencies> pom.xml の内容を確認する pom.xml 35行目あたり WebSocketを利用 するのに必要!! 2章
40.
javajo.form > ChatForm.java
2章 public class ChatForm { ・・・・・省略・・・・・ }
41.
public class ChatForm
{ private String name; private String message; ・・・・・省略・・・・・ } javajo.form > ChatForm.java 2章 クライアントから 受け取った値を格納する フィールドを作成
42.
public class ChatForm
{ ・・・・・省略・・・・・ /** public String getName() { return name; } ・・・・・省略・・・・・ public void setMessage(String message) { this.message = message; } **/ } javajo.form > ChatForm.java 2章 フィールドにアクセスする getter/setterを作成します
43.
public class ChatForm
{ ・・・・・省略・・・・・ /** public String getName() { return name; } ・・・・・省略・・・・・ public void setMessage(String message) { this.message = message; } **/ } javajo.form > ChatForm.java 2章 すでに実装済みなので、 コメントアウトを外す だけでOK
44.
public class ChatForm
{ ・・・・・省略・・・・・ public String getName() { return name; } ・・・・・省略・・・・・ public void setMessage(String message) { this.message = message; } } javajo.form > ChatForm.java 2章 すでに実装済みなので、 コメントアウトを外す だけでOK
45.
チャットツールの作成内容 2章 ①WebSocketへの接続要求 ⑥WebSocketコネクション切断 ④メッセージ送信 ⑤メッセージ受信 ②WebSocketコネクション確立 ③メッセージ受信時の挙動設定
46.
public class StompConfig
{ } javajo.config > StompConfig.java 2章 クライアントからの メッセージを処理する クラスを作成します
47.
public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { } javajo.config > StompConfig.java 2章 メッセージを処理する 抽象クラスを継承
48.
@Configuration public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { } javajo.config > StompConfig.java 2章 設定ファイルを表す アノテーションを付与
49.
@Configuration @EnableWebSocketMessageBroke public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { } javajo.config > StompConfig.java 2章 WebSocketを扱うのに 必要なアノテーションを 付与
50.
public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints (StompEndpointRegistry registry) { registry.addEndpoint("endpoint"); } } javajo.config > StompConfig.java 2章 エンドポイントの 登録メソッドを作成
51.
チャットツールの作成内容 2章 ChatController @MessageMapping("/message") @SendTo(value= "/topic/messages") MessageBroker /message /app/message @EnableWebSocketMessageBroker /topic/messages ここを 作るよ
ChatForm
52.
public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { ・・・・・省略(registerStompEndpointsの直後)・・・・・ @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.setApplicationDestinationPrefixes("/app"); registry.enableSimpleBroker("/topic"); } } javajo.config > StompConfig.java 2章 メッセージブローカーの 設定メソッドを作成
53.
チャットツールの作成内容 2章 ①WebSocketへの接続要求 ⑥WebSocketコネクション切断 ④メッセージ送信 ⑤メッセージ受信 ②WebSocketコネクション確立 ③メッセージ受信時の挙動設定ここを 作るよ
54.
チャットツールの作成内容 2章 ChatController @MessageMapping("/message") @SendTo(value= "/topic/messages") MessageBroker /message /app/message ChatForm @EnableWebSocketMessageBroker /topic/messages ここを 作るよ
55.
public class ChatController
{ ChatForm greet(ChatForm chatForm) { return chatForm; } } javajo.controller > ChatController.java 2章 チャットのコントロー ラークラスを作成します
56.
@RestController public class ChatController
{ ChatForm greet(ChatForm chatForm) { return chatForm; } } javajo.controller > ChatController.java 2章 コントローラーの アノテーションを付与
57.
@RestController public class ChatController
{ @MessageMapping(value = "/message" ) ChatForm greet(ChatForm chatForm) { return chatForm; } } javajo.controller > ChatController.java 2章 メッセージを受け付ける MessageMappingを付与
58.
@RestController public class ChatController
{ @MessageMapping(value = "/message" ) @SendTo(value = "/topic/messages") ChatForm greet(ChatForm chatForm) { return chatForm; } } javajo.controller > ChatController.java 2章 処理結果を送信する宛先 SendToを付与
59.
チャットツールの作成内容 2章 ①WebSocketへの接続要求 ⑥WebSocketコネクション切断 ④メッセージ送信 ⑤メッセージ受信 ②WebSocketコネクション確立 ③メッセージ受信時の挙動設定 ここだよ
60.
チャットツールの作成内容 2章 ここだよ
61.
クライアント側(Stomp.js) 2章 resources/static/js/Stomp.js 提供されているライブラリを使用 詳しくは、 http://jmesnil.net/stomp-websocket/doc/ クライアント側のメッセージ制御は JavaScriptライブラリを利用する
62.
クライアント側(javajo.js) 2章 ChatStomp.prototype.connect =
function () { var socket = new WebSocket('ws://' + location.host + '/endpoint'); ・・・・・省略・・・・・ }; 23行目
63.
public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoints (StompEndpointRegistry registry) { registry.addEndpoint("endpoint"); } } javajo.config > StompConfig.java 2章 エンドポイントの 登録メソッドを作成
64.
チャットツールの作成内容 2章 ①WebSocketへの接続要求 ⑥WebSocketコネクション切断 ④メッセージ送信 ⑤メッセージ受信 ②WebSocketコネクション確立 ③メッセージ受信時の挙動設定 ここだよ
65.
チャットツールの作成内容 2章 ここだよ
66.
クライアント側(javajo.js) 2章 ChatStomp.prototype.onConnected =
function (frame) { console.log('Connected: ' + frame); this.stompClient.subscribe('/topic/messages',this. onSubscribeGreeting.bind(this)); this.setConnected(true); }; 34行目
67.
public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { ・・・・・省略(registerStompEndpointsの直後)・・・・・ @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.setApplicationDestinationPrefixes("/app"); registry.enableSimpleBroker("/topic"); } } javajo.config > StompConfig.java 2章 メッセージブローカーの 設定メソッドを作成
68.
チャットツールの作成内容 2章 ①WebSocketへの接続要求 ⑥WebSocketコネクション切断 ④メッセージ送信 ⑤メッセージ受信 ②WebSocketコネクション確立 ③メッセージ受信時の挙動設定ここだよ
69.
チャットツールの作成内容 2章 ここだよ
70.
クライアント側(javajo.js) 2章 ChatStomp.prototype.sendName = function
() { ・・・・・省略・・・・・ this.stompClient.send("/app/message", {}, JSON.stringify(json_message)); }; 73行目
71.
public class StompConfig
extends AbstractWebSocketMessageBrokerConfigurer { ・・・・・省略(registerStompEndpointsの直後)・・・・・ @Override public void configureMessageBroker(MessageBrokerRegistry registry) { registry.setApplicationDestinationPrefixes("/app"); registry.enableSimpleBroker("/topic"); } } javajo.config > StompConfig.java 2章 メッセージブローカーの 設定メソッドを作成
72.
@RestController public class ChatController
{ @MessageMapping(value = "/message" ) ChatForm greet(ChatForm chatForm) { return chatForm; } } javajo.controller >ChatController.java 2章 メッセージを受け付ける MessageMappingを付与
73.
チャットツールの作成内容 2章 ChatController @MessageMapping("/message") @SendTo(value= "/topic/messages") MessageBroker /message /app/message @EnableWebSocketMessageBroker /topic/messages ChatForm
74.
チャットツールの作成内容 2章 ①WebSocketへの接続要求 ⑥WebSocketコネクション切断 ④メッセージ送信 ⑤メッセージ受信 ②WebSocketコネクション確立 ③メッセージ受信時の挙動設定 ここだよ
75.
チャットツールの作成内容 2章 ここだよ
76.
クライアント側(javajo.js) 2章 ChatStomp.prototype.disconnect = function
() { if (this.stompClient) { this.stompClient.disconnect(); this.stompClient = null; } this.setConnected(false); }; 88行〜94行目
77.
ハンズオンはここまで! 実際に動かしてみよう! #jjug_ccc #ccc_m3
78.
1. chat-exerciseのプロジェクトを実行! 2. http://localhost:8080/chat にアクセス! ローカルで動かしてみようローカルで動かしてみよう 3.
ユーザ名を入力してConnectボタンクリック! 4.メッセージを入力してSendボタン をクリック! #jjug_ccc #ccc_m3
79.
まとめ #jjug_ccc #ccc_m3
80.
・「Hello World」を出力するアプリケーションを Spring Bootで作りました ・チャットを作りながらWebSocketについて学 びました まとめ #jjug_ccc
#ccc_m3
81.
お疲れ様でした ありがとうございました 【講師】 ゆう・ちか 【チューター】 えりこ・あや・とぅん・よこな #jjug_ccc #ccc_m3
Download