質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Vue.js

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

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Q&A

解決済

1回答

590閲覧

Vueを使ったチャットアプリ

anpnt

総合スコア29

Vue.js

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

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

0グッド

0クリップ

投稿2019/03/02 13:05

練習でVue.jsとRailsを使った簡単なチャットアプリを作ろうと考えています。

ルーム切り替えあり、ユーザーの概念はなしで作ろうと思っていて、ルームとメッセージが一対多であるシンプルなモデル設計です。

ただ一応未読件数表示の機能は考えていて、ユーザーはいないのでセッションだけで件数を取るイメージなんですが、

あまりセッション管理やクッキーについて詳しくなく、どういう実装方針がいいのか決めかねて質問させていただきました。

最後に訪れた日時と、最新のメッセージの日時との間に溜まっていたメッセージの件数を取るという方針で考えているんですが、どうでしょうか? (リロードされたら消える、でOKです)

もっと良い方法や、これについて勉強しろ、などがあれば教えてください。

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

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

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

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

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

nskydiving

2019/03/02 14:38

質問者さんは Vue.js と Rails について、どれくらい知識や経験があるのでしょうか? それによってアドバイスが変わってくるかと思います。
nico25

2019/03/02 18:22

Vue.js と Firebase で結構さっくり作れますよ。 僕もまだ写経レベルですが作りました。 認証付きの簡易チャットを作る! - 基礎から学ぶ Vue.js https://cr-vue.mio3io.com/tutorials/firebase.html ご希望のものかはわからないのですが、ご参考までに。
anpnt

2019/03/02 20:34 編集

nskydivingさん Railsは知識を程度で表すのは難しいですが、(実際にはやってないですが目次を見る限り)Railsチュートリアルを完全に理解できる程度に加えて、今回サーバーサイドはActionCableでつくり、後はControllerがAPIを返すだけという実装でいます。(そこについてはできそうなのであとは未読機能をどうするか、、という感じになってます) Vueについては https://jp.vuejs.org/v2/guide/index.html こちらの知識は一通りあると思っていただいて大丈夫です。 (JSについてもES6の教材 https://jsprimer.net/ までは一通り大丈夫です)
anpnt

2019/03/02 20:18

nicoさん ありがとうございます。 今回はActioncableをつかいたかったので、バックはRailsにまかせてRailsのViewは一切使わずにつくるというチャットを作ろうとしています。なのでFireBaseは使わないですね。 でも教えていただいた教材も役に立ちそうなので目を通してみます。
nskydiving

2019/03/02 23:46

>ユーザーの概念はなしで作ろうと思っていて これはどういうイメージでしょうか? チャットアプリなのにユーザーの概念がないと、誰と誰が会話しているのか分からないのでは?と思ったのですが。
anpnt

2019/03/03 02:17

>nskydivingさん 全員名無しさんのイメージでした。(2ちゃんねるみたいな) 作ろうか迷ったんですが、今回はVueとActionCableの学習のためにやっていたので、ユーザーはいらないかなと思いました。(DB設計はミニマムにしたかったので)
退会済みユーザー

退会済みユーザー

2019/03/03 05:19

一回その方針で作って、詰まったら再度質問すれば良いと思います。 仕様的に一日以内で作れると思いますし、現状だと質問の含意が広すぎて噛み合った回答が得られにくいかと。
guest

回答1

0

ベストアンサー

ユーザーの概念はなしで作ろうと思っていて

全員名無しさんのイメージでした。(2ちゃんねるみたいな)

「2ちゃんねる」はユーザー登録不要かつ匿名ですが、ユーザーはちゃんと存在しています。
書き込みをすると「ID:F+Ii83QoX」みたいな ID が表示されますが、これがユーザーの ID になります。
セッションやクッキーでユーザーを管理することもできなくはないですが、普通に DB で管理するよりも面倒なのであまりおすすめはしません。

Action Cable を使った Rails アプリは色々サンプルがありそうですし、それらを参考にして作っていく感じで良いと思います。

あと、フロントエンドを Vue.js を作るとなると、これも結構大変だと思うので、いっぺんに両方やろうとせず、一度 Rails だけでチャットアプリを完成させて、後から Vue.js の部分を作った方が良いと思います。

投稿2019/03/03 02:40

nskydiving

総合スコア6500

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

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

anpnt

2019/03/03 03:35

回答有り難うございます。 なるほど。2ちゃんねるのIDって毎回変わるものだと思ってました。 >セッションやクッキーでユーザーを管理することもできなくはない ちなみにこちらってどういう方法を想定されてます? 自分は単純に時間で差分をとればいけるのかなーと思ったんですがそんなこともないのでしょうか?
nskydiving

2019/03/03 04:05

>ちなみにこちらってどういう方法を想定されてます? あんまり深く考えてませんでしたが、セッションIDをクッキーに保存して、それをユーザーID代りに使う感じでしょうか。 「練習で作る」という場合は、これでも良いですが、ユーザーIDをクッキーに保存することはセキュリティ的にとても危険です。 なりすましができてしまうチャットアプリなんてあり得ませんし、普通はやらないので注意してください。
anpnt

2019/03/03 05:20

ありがとうございます!反応が早くて助かりました! 助言までしていただいてありがとうございます。その辺は最近よく話題に上がってるので知識を身に着けないとなと思ってます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問