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
Most read
19
/ 81
20
/ 81
Most read
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
40
/ 81
Most read
41
/ 81
42
/ 81
43
/ 81
44
/ 81
45
/ 81
46
/ 81
47
/ 81
48
/ 81
49
/ 81
50
/ 81
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
SpringBootTest入門
by
Yahoo!デベロッパーネットワーク
PDF
Introduction to JMeter
by
Galih Lasahido
PDF
Spring integration概要
by
kuroiwa
PDF
大規模負荷試験時にやったこと
by
まべ☆てっく運営
PDF
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
PDF
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
by
Yoshiro Tokumasu
PDF
例外設計における大罪
by
Takuto Wada
PDF
これからのJDK/JVM 何を選ぶ?どう選ぶ?
by
Takahiro YAMADA
SpringBootTest入門
by
Yahoo!デベロッパーネットワーク
Introduction to JMeter
by
Galih Lasahido
Spring integration概要
by
kuroiwa
大規模負荷試験時にやったこと
by
まべ☆てっく運営
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
JDK 16 で導入された JEP 396 にご注意!! (JJUG CCC 2021 Spring)
by
Yoshiro Tokumasu
例外設計における大罪
by
Takuto Wada
これからのJDK/JVM 何を選ぶ?どう選ぶ?
by
Takahiro YAMADA
What's hot
PDF
探索的テスト入門
by
H Iseri
PPTX
QAアーキテクチャの設計による説明責任の高いテスト・品質保証
by
Yasuharu Nishi
PDF
Proxy War
by
zaki4649
PDF
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
PPTX
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
PPTX
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
by
apkiban
PPTX
テスト観点に関する取り組み事例
by
NaokiKashiwagura
PDF
Spring Boot × Vue.jsでSPAを作る
by
Go Miyasaka
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
ドワンゴにおける新卒エンジニア向けScala研修について
by
Kota Mizushima
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
新人研修資料 向き合うエンジニア
by
akira6592
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PPTX
Spring Integration 超入門
by
Yasutaka Sugamura
PDF
Java EE 再入門
by
minazou67
PPTX
Presentation on Apache Jmeter
by
Sabitri Gaire
PDF
次世代Webコンテナ Undertowについて
by
Yoshimasa Tanabe
PDF
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
PDF
JSRとJEPとJBSの見方や調べ方について
by
Aya Ebata
探索的テスト入門
by
H Iseri
QAアーキテクチャの設計による説明責任の高いテスト・品質保証
by
Yasuharu Nishi
Proxy War
by
zaki4649
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
システム間連携を担うSpring Integrationのエンタープライズ開発での活用
by
apkiban
テスト観点に関する取り組み事例
by
NaokiKashiwagura
Spring Boot × Vue.jsでSPAを作る
by
Go Miyasaka
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
ドワンゴにおける新卒エンジニア向けScala研修について
by
Kota Mizushima
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
新人研修資料 向き合うエンジニア
by
akira6592
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
Spring Integration 超入門
by
Yasutaka Sugamura
Java EE 再入門
by
minazou67
Presentation on Apache Jmeter
by
Sabitri Gaire
次世代Webコンテナ Undertowについて
by
Yoshimasa Tanabe
これからSpringを使う開発者が知っておくべきこと
by
土岐 孝平
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
JSRとJEPとJBSの見方や調べ方について
by
Aya Ebata
Viewers also liked
PPTX
Java女子部勉強会参加した感想
by
Java女子部
PDF
JavaOne 2015 - Java SE Update
by
Yuichi Sakuraba
PPTX
Rancher LT Talk 20170126
by
Tetsurou Yano
PDF
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
by
Hikari Fukasawa
PPTX
サーバサイドエンジニアが知りたいIoTの話
by
Yuki Takahashi
PDF
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
PDF
Java女子部について
by
Java女子部
PDF
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
by
Takakiyo Tanaka
PDF
プロダクトに 1 から Vue.js を導入した話
by
Shohei Okada
PDF
とにかく楽してVue.jsでTypeScriptを使いたい
by
さくらインターネット株式会社
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PPTX
Java 9 and Future #jjug
by
Yuji Kubota
PPTX
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
by
hajime funaki
PDF
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
by
Hiroyuki Ohnaka
PDF
2017spring jjug ccc_f2
by
Kazuhiro Wada
PDF
Java libraries you can't afford to miss
by
Andres Almiray
PDF
Jjugccc2017spring-postgres-ccc_m1
by
Kosuke Kida
PPTX
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
PDF
Arachne Unweaved (JP)
by
Ikuru Kanuma
PPTX
Jjug ccc
by
Tanaka Yuichi
Java女子部勉強会参加した感想
by
Java女子部
JavaOne 2015 - Java SE Update
by
Yuichi Sakuraba
Rancher LT Talk 20170126
by
Tetsurou Yano
PHPer女子が語る2015!こんなコードを書くヒトはモテない〜コラボ編〜@PHPカンファレンス2015 #phpcon2015
by
Hikari Fukasawa
サーバサイドエンジニアが知りたいIoTの話
by
Yuki Takahashi
HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ
by
LINE Corporation
Java女子部について
by
Java女子部
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
by
Takakiyo Tanaka
プロダクトに 1 から Vue.js を導入した話
by
Shohei Okada
とにかく楽してVue.jsでTypeScriptを使いたい
by
さくらインターネット株式会社
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
Java 9 and Future #jjug
by
Yuji Kubota
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
by
hajime funaki
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
by
Hiroyuki Ohnaka
2017spring jjug ccc_f2
by
Kazuhiro Wada
Java libraries you can't afford to miss
by
Andres Almiray
Jjugccc2017spring-postgres-ccc_m1
by
Kosuke Kida
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
Arachne Unweaved (JP)
by
Ikuru Kanuma
Jjug ccc
by
Tanaka Yuichi
Similar to Spring Bootでチャットツールを作りながらWebの仕組みを理解しよう!
PDF
Spring AMQP × RabbitMQ
by
Keisuke Nishitani
PDF
Playで作るwebsocketサーバ
by
ke-m kamekoopa
PDF
UnicastWS vol.1
by
Unicast Inc.
PPTX
JavaプログラマのためのWebSocket概要
by
Shumpei Shiraishi
PDF
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
by
Kazuhiro Hara
PPTX
JavaOne2014報告会資料
by
Mitsuyasu Tsuhako
PDF
WebSocket Chat App Hands On on Microsoft Azure
by
Yoshio Terada
PDF
Public 20100828 j_ruby_kaigi_10things_jror_with_javaee
by
Yoshiharu Hashimoto
PDF
WebSocket + Node.jsでつくるチャットアプリ
by
Kohei Kadowaki
PDF
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
by
Toshiaki Maki
PDF
女子中高生とTwitter4J #twtr_hack
by
Itsuki Kuroda
PDF
これから利用拡大?WebSocket
by
AdvancedTechNight
PDF
SocketStream入門
by
Kohei Kadowaki
PDF
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
PDF
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
PDF
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
by
Takakiyo Tanaka
DOCX
ネットワーク第5回
by
Yukiko Kato
PDF
AndroidでWebSocket
by
Kohei Kadowaki
PDF
[Ps11]ネットワーク第4回
by
Yukiko Kato
PDF
Spring BootでHello Worldのその先へ
by
Masatoshi Fujino
Spring AMQP × RabbitMQ
by
Keisuke Nishitani
Playで作るwebsocketサーバ
by
ke-m kamekoopa
UnicastWS vol.1
by
Unicast Inc.
JavaプログラマのためのWebSocket概要
by
Shumpei Shiraishi
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
by
Kazuhiro Hara
JavaOne2014報告会資料
by
Mitsuyasu Tsuhako
WebSocket Chat App Hands On on Microsoft Azure
by
Yoshio Terada
Public 20100828 j_ruby_kaigi_10things_jror_with_javaee
by
Yoshiharu Hashimoto
WebSocket + Node.jsでつくるチャットアプリ
by
Kohei Kadowaki
SpringOne 2GX 2014 参加報告 & Spring 4.1について #jsug
by
Toshiaki Maki
女子中高生とTwitter4J #twtr_hack
by
Itsuki Kuroda
これから利用拡大?WebSocket
by
AdvancedTechNight
SocketStream入門
by
Kohei Kadowaki
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
node+socket.io+enchant.jsでチャットゲーを作る
by
Kiyoshi SATOH
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
by
Takakiyo Tanaka
ネットワーク第5回
by
Yukiko Kato
AndroidでWebSocket
by
Kohei Kadowaki
[Ps11]ネットワーク第4回
by
Yukiko Kato
Spring BootでHello Worldのその先へ
by
Masatoshi Fujino
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