Soumettre la recherche
Mettre en ligne
第4回鹿児島node.jsの会資料_内村
•
2 j'aime
•
1,498 vues
Koichi Uchimura
Suivre
第4回鹿児島Node.jsの会資料です。前回の反省を踏まえてなるべく簡略化するようにしています。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 22
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
Kohei MATSUSHITA
WSL2使ってみた / Preview for WSL2
WSL2使ってみた / Preview for WSL2
株式会社MonotaRO Tech Team
後期第七回ネットワークチーム講座資料
後期第七回ネットワークチーム講座資料
densan_teacher
みんなのブログ紹介
みんなのブログ紹介
Sanae Taniguchi
Word benchfukuoka
Word benchfukuoka
Junji Manno
SELinux_Updates_PoC_20170516
SELinux_Updates_PoC_20170516
Kazuki Omo
SELinux_Status_PoC_20170516
SELinux_Status_PoC_20170516
SecureOSS-Sig
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
Amazon Web Services Japan
Recommandé
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
Kohei MATSUSHITA
WSL2使ってみた / Preview for WSL2
WSL2使ってみた / Preview for WSL2
株式会社MonotaRO Tech Team
後期第七回ネットワークチーム講座資料
後期第七回ネットワークチーム講座資料
densan_teacher
みんなのブログ紹介
みんなのブログ紹介
Sanae Taniguchi
Word benchfukuoka
Word benchfukuoka
Junji Manno
SELinux_Updates_PoC_20170516
SELinux_Updates_PoC_20170516
Kazuki Omo
SELinux_Status_PoC_20170516
SELinux_Status_PoC_20170516
SecureOSS-Sig
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
[AWS Summit 2012] クラウドデザインパターン#4 CDP VPC移行編
Amazon Web Services Japan
node.js 開発のためのお手軽サーバ構築について(仮)
node.js 開発のためのお手軽サーバ構築について(仮)
Toru Tamura
ネットワークの紹介+苦労話
ネットワークの紹介+苦労話
Tetsuya Hasegawa
Start
Start
hironorinonaka
Start
Start
hironorinonaka
Zotero他言語版(MLZ)の紹介 // Introducing Multilingual Zotero
Zotero他言語版(MLZ)の紹介 // Introducing Multilingual Zotero
Frank Bennett
Start
Start
hironorinonaka
To the Cloud & Back!:本当のクラウド対応をZertoが提供 -VMリアルタイムレプリケーション最新機能全貌-
To the Cloud & Back!:本当のクラウド対応をZertoが提供 -VMリアルタイムレプリケーション最新機能全貌-
株式会社クライム
Xcode7 / iOS 9 対応でハマったこと
Xcode7 / iOS 9 対応でハマったこと
Tomotsune Murata
Beta1〜6で変わったswiftの仕様 超簡単まとめ
Beta1〜6で変わったswiftの仕様 超簡単まとめ
Mana Fukunishi
Bsd suki
Bsd suki
yamori813
kstmネットワーク
kstmネットワーク
kstmshinshu
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Masayuki Nii
Bitcoin testnet
Bitcoin testnet
Yuichiro Shibata
20201105 SoftwareDesign 2020/11 kitazaki
20201105 SoftwareDesign 2020/11 kitazaki
Ayachika Kitazaki
これから利用拡大?WebSocket
これから利用拡大?WebSocket
AdvancedTechNight
ゆるかわPhp
ゆるかわPhp
Ryota Mochizuki
120512 metro styleapp_javascript
120512 metro styleapp_javascript
Takayoshi Tanaka
Real Tech Night #3 システムをEC2からFargateへ安全にリプレイス
Real Tech Night #3 システムをEC2からFargateへ安全にリプレイス
Yoshiki TAKADA
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
レゴブロックとC#を使ったIoT体験
レゴブロックとC#を使ったIoT体験
Shigeharu Yamaoka
NW入門
NW入門
Shuntaro Saiba
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
Nobuyuki Matsui
Contenu connexe
Tendances
node.js 開発のためのお手軽サーバ構築について(仮)
node.js 開発のためのお手軽サーバ構築について(仮)
Toru Tamura
ネットワークの紹介+苦労話
ネットワークの紹介+苦労話
Tetsuya Hasegawa
Start
Start
hironorinonaka
Start
Start
hironorinonaka
Zotero他言語版(MLZ)の紹介 // Introducing Multilingual Zotero
Zotero他言語版(MLZ)の紹介 // Introducing Multilingual Zotero
Frank Bennett
Start
Start
hironorinonaka
To the Cloud & Back!:本当のクラウド対応をZertoが提供 -VMリアルタイムレプリケーション最新機能全貌-
To the Cloud & Back!:本当のクラウド対応をZertoが提供 -VMリアルタイムレプリケーション最新機能全貌-
株式会社クライム
Xcode7 / iOS 9 対応でハマったこと
Xcode7 / iOS 9 対応でハマったこと
Tomotsune Murata
Beta1〜6で変わったswiftの仕様 超簡単まとめ
Beta1〜6で変わったswiftの仕様 超簡単まとめ
Mana Fukunishi
Bsd suki
Bsd suki
yamori813
kstmネットワーク
kstmネットワーク
kstmshinshu
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Masayuki Nii
Bitcoin testnet
Bitcoin testnet
Yuichiro Shibata
20201105 SoftwareDesign 2020/11 kitazaki
20201105 SoftwareDesign 2020/11 kitazaki
Ayachika Kitazaki
Tendances
(14)
node.js 開発のためのお手軽サーバ構築について(仮)
node.js 開発のためのお手軽サーバ構築について(仮)
ネットワークの紹介+苦労話
ネットワークの紹介+苦労話
Start
Start
Start
Start
Zotero他言語版(MLZ)の紹介 // Introducing Multilingual Zotero
Zotero他言語版(MLZ)の紹介 // Introducing Multilingual Zotero
Start
Start
To the Cloud & Back!:本当のクラウド対応をZertoが提供 -VMリアルタイムレプリケーション最新機能全貌-
To the Cloud & Back!:本当のクラウド対応をZertoが提供 -VMリアルタイムレプリケーション最新機能全貌-
Xcode7 / iOS 9 対応でハマったこと
Xcode7 / iOS 9 対応でハマったこと
Beta1〜6で変わったswiftの仕様 超簡単まとめ
Beta1〜6で変わったswiftの仕様 超簡単まとめ
Bsd suki
Bsd suki
kstmネットワーク
kstmネットワーク
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Bitcoin testnet
Bitcoin testnet
20201105 SoftwareDesign 2020/11 kitazaki
20201105 SoftwareDesign 2020/11 kitazaki
Similaire à 第4回鹿児島node.jsの会資料_内村
これから利用拡大?WebSocket
これから利用拡大?WebSocket
AdvancedTechNight
ゆるかわPhp
ゆるかわPhp
Ryota Mochizuki
120512 metro styleapp_javascript
120512 metro styleapp_javascript
Takayoshi Tanaka
Real Tech Night #3 システムをEC2からFargateへ安全にリプレイス
Real Tech Night #3 システムをEC2からFargateへ安全にリプレイス
Yoshiki TAKADA
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
レゴブロックとC#を使ったIoT体験
レゴブロックとC#を使ったIoT体験
Shigeharu Yamaoka
NW入門
NW入門
Shuntaro Saiba
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
Nobuyuki Matsui
東京Node学園 15時限目めも
東京Node学園 15時限目めも
Fumihiko Nishio
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
SL囲む会東京5 Nodejs×Silverlightではまったこと
SL囲む会東京5 Nodejs×Silverlightではまったこと
normalian
WebRTC meetup Tokyo 1
WebRTC meetup Tokyo 1
mganeko
Ppt fukui g
Ppt fukui g
harmonylab
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
gree_tech
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
bitbank, Inc. Tokyo, Japan
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
Koki Natsume
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
kozossakai
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
CODE BLUE
Algyan@how to dragon board410c20170930
Algyan@how to dragon board410c20170930
Hiroshi Hasegawa
Node最新トピックス
Node最新トピックス
shigeki_ohtsu
Similaire à 第4回鹿児島node.jsの会資料_内村
(20)
これから利用拡大?WebSocket
これから利用拡大?WebSocket
ゆるかわPhp
ゆるかわPhp
120512 metro styleapp_javascript
120512 metro styleapp_javascript
Real Tech Night #3 システムをEC2からFargateへ安全にリプレイス
Real Tech Night #3 システムをEC2からFargateへ安全にリプレイス
Node.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
レゴブロックとC#を使ったIoT体験
レゴブロックとC#を使ったIoT体験
NW入門
NW入門
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
東京Node学園 15時限目めも
東京Node学園 15時限目めも
Play jjug2012spring
Play jjug2012spring
SL囲む会東京5 Nodejs×Silverlightではまったこと
SL囲む会東京5 Nodejs×Silverlightではまったこと
WebRTC meetup Tokyo 1
WebRTC meetup Tokyo 1
Ppt fukui g
Ppt fukui g
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
Goで学ぶDApp(aizu.go#2)
Goで学ぶDApp(aizu.go#2)
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
Algyan@how to dragon board410c20170930
Algyan@how to dragon board410c20170930
Node最新トピックス
Node最新トピックス
Plus de Koichi Uchimura
痛すぽ事業計画書
痛すぽ事業計画書
Koichi Uchimura
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
Koichi Uchimura
えあすぽ
えあすぽ
Koichi Uchimura
痛すぽ_プレゼン資料
痛すぽ_プレゼン資料
Koichi Uchimura
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村
Koichi Uchimura
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村
Koichi Uchimura
第5回鹿児島node.jsの会資料_内村
第5回鹿児島node.jsの会資料_内村
Koichi Uchimura
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
Koichi Uchimura
第2回鹿児島node.jsの会資料_内村
第2回鹿児島node.jsの会資料_内村
Koichi Uchimura
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Plus de Koichi Uchimura
(11)
痛すぽ事業計画書
痛すぽ事業計画書
第7回鹿児島Node.jsの会勉強会資料
第7回鹿児島Node.jsの会勉強会資料
えあすぽ
えあすぽ
痛すぽ_プレゼン資料
痛すぽ_プレゼン資料
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村
第5回鹿児島node.jsの会資料_内村
第5回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
第2回鹿児島node.jsの会資料_内村
第2回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Dernier
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
Dernier
(7)
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
第4回鹿児島node.jsの会資料_内村
1.
第4回勉強会 Socket.ioでリアルタイムチャットを作ろう 内村 康一
2.
今日の目次 第1章 expressの準備はいいですか~? 第2章 socket.ioの概略とインストール 第3章 チャットを作ってみよう
3.
第1章 第1章 expressの準備はいいですか~?
4.
第1章 expressの準備はいいですか~? 前回までのおさらい ① node.jsをインストール ② npmでexpressをインストール ③ npmでejsをインストール ここまではOKでしょうか?? まだの方は第1回の資料を参照して下さい。
5.
第2章 第2章 socket.ioの概略とインストール
6.
WebSocketとAjaxの違い ①Ajax技術は基本的にクライアントからサーバにリクエストを 送ることで通信する。WebSocket APIではサーバからもクライ アントからも通信を実施でき、完全な双方向通信が可能。 ②Ajax技術は同一のドメイン内での通信に限定されるものの、 WebSocket APIはクロスドメインでの通信に対応している。 ③Ajax技術はHTTP通信をベースにしているためセッションレス 通信やヘッダの転送など通信効率が悪い。WetSocketは直 接wsプロトコルやwssプロトコルを使って通信を実施し、Ajax 技術と比較して通信効率がいい。 ④WebSocket
APIは双方向通信を前提として設計されており、 APIがシンプルで扱いやすい。 引用「マイナビニュース」
7.
socket.ioって何ぞや?? socket.io = WebSocket
と思いがちですが、 実はそうではありません・・・。 Socket.io ajax(xhr-polling) jsonp-polling WebSocket な感じで新旧様々なブラウザからのリアルタイム 通信を実現するライブラリ(ラッパー)だそうです。
8.
socket.ioの対応ブラウザ Internet Explorer 5.5+ Safari
3+ Google Chrome 4+ Firefox 3+ Opera 10.61+ iPhone Safari iPad Safari Android WebKit WebOs WebKit ほとんどのブラウザで 対応してるってことですね!
9.
プッシュ型のWebsocket ① Ajaxの場合 ② WebSocketの場合 クライアント側 からアクション が必要 サーバ側から 直接アクション できる
10.
クロスドメインが可能なWebSocket ① Ajaxの場合 ② WebSocketの場合 abc.co.jp ghi.com abc.co.jp 同一ドメイン内でしか使えない (クロスドメインのやり方はある みたいですが) def.jp ドメイン間でデータのやりとりが可能
11.
Socket.ioのまとめ ①Socket.ioはWebsocketを含めたラッパーなの でWebSocketの機能もほぼ実現している。 ②基本的に様々なブラウザへの対応のため、 AjaxやComet、WebSocketなどの違いを吸収 するラッパーと考えて良さそう。 ③Expressは使わなくてもSocket.io単体で実装 できるらしい・・・。
12.
Socket.ioのインストール いつもの通り npm install socket.io で終了です。
13.
第3章 第3章 チャットを作ってみよう
14.
チャットの仕様 入力フォームに入力した文字が 新しい順に表示されます。 複数のブラウザで連動しますよ。
15.
まずはapp.jsから 定型文から見ていきましょう。 server = http.createServer(app);
// サーバーを立ち上げます。 server.listen(3000); // 3000番ポートを待機状態にします。 var socket = require('socket.io'); var io = socket.listen(server); // socketも待機状態にします。
16.
app.jsの通信部分 次に通信部分です。 io.sockets.on('connection', function(socket) { //
繋がったよ~ "on"は「受信したとき」の意味 console.log("connection"); // メッセージを受けたときの処理 socket.on('msg', function(data) { クライアントが投げた「msg」データを console.log(data); 受信したとき // つながっているクライアント全員に送信 io.sockets.emit('msg', { value: data }); }); "emit"は「送信する」の意味。この場 // クライアントが切断したときの処理 合「自分も含めた全員に送信。 socket.on('disconnect', function(){ console.log("disconnect"); 自分以外の全員に送るには }); 「socket.broadcast.emit(...)」 });
17.
次にクライアント側 var socket =
io.connect('http://localhost:3000'); // こっちもつながったよ~ socket.on('connect', function(msg) { ここには接続先のアドレスを記述。 console.log("connect"); }); // フォームを送信したときに $('form').submit(function() { //msgとして入力ボックス(ID:send)の値を送信 socket.emit('msg', $('#send').val()); こちらの"emit"も同様に送信の意味。 //入力ボックスの中身を空にする msgとしてテキストボックス内の値を $('#send').val(''); サーバに送信している。 return false; });
18.
クライアント側の受信部 socket.on('msg', function(data) { //
divの中に後付けする サーバからmsgが返ってきたら、<div> $('div').prepend(data.value + '<br>'); の中に値を挿入していく。 }); // 切断する $('#disconn').click(function(){ socket.disconnect(); ここのdata.valueは、app.jsで記述した io.sockets.emit('msg', { value: data }); に対応しています。
19.
実際に動かしてみると・・・ という感じで片方に入れたワードがもう片方にも反映されると思います。
20.
socket.ioの使い道 ① リアルタイムチャットには最適 ② 細かいデータを頻繁にやり取りする ソーシャルゲームなんかにも使えそう。 ③ お絵描きもできるので、手書きで教える E-ラーニングなども簡単にできる。 ※ 画像や動画のやりとりには不向きかも・・・。
21.
node-webkitのご紹介 nodeを使ってデスクトップアプリ(Widows/Mac/ Linux)が作れるという優れもの。 デスクトップアプリなので、デスクトップのAPI なんかもバンバン叩ける。 これでnodeを使ったBluetooth通信(SPP) ができました。 ※Visual Studio 2010やPython環境が必要。
22.
ありがとうございました。 ご清聴ありがとうございました。
Télécharger maintenant