LoginSignup
4

More than 5 years have passed since last update.

245cloud.comにMilkcocoaを入れてみた

Last updated at Posted at 2014-12-20

245cloudとは

24分間だけ仕事して5分間だけ他の人と交換日記をするサービスです。
http://245cloud.com

「ポモドーロテクニック」という仕事術があるのですが
それをみんなでできるサービスです。

もともとは自分の会社がコンテンツ版GitHubみたいなサービス
「ラフノート」 https://ruffnote.com/
を開発していて

https://ruffnote.com/pandeiro245/245cloud/13475
みたいな感じでコンテンツ管理できます。っていう
デモをするために作ったのですが
http://attrip.jp/138267/
で取り上げてもらったりして
1日10時間やってくれる人が出てきたりして
幸せです。

245cloudの実装

parse.comやPubNubなどを使っていてサーバ側の実装はこれだけ。
https://github.com/pandeiro245/245cloud/blob/master/app.js

あとはクライアントJSのみで開発しています。
これでfacebookログインまで対応しているのですが
parse.comはfacebookに買収されているせいなのか、
Twitterログインができないのです...。
そういう意味でもMilkcocoaには超期待しています!
(それができたら全部Milkcocoaでできちゃうな!)

参考記事:http://thebridge.jp/2014/10/milkcocoa

とりあえず入れてみた

こちら、下記のコードを自分の作業しているHTMLに貼り付けておくと
245cloud.comで集中するボタンを押したらその貼り付けられたページを
持つブラウザタブが強制的に開くという仕組みです。
(ちなみにchromeやsafariはJSのalertがそういう強制力あるけど
Firefoxはそうならないらしい)

<script src="//cdn.mlkcca.com/v0.2.8/milkcocoa.js"></script>
<script>
  var userId = '#{user.id}';
  var milkcocoa = new MilkCocoa("https://io-ui2n0gy4p.mlkcca.com:443");
  var spartaDataStore = milkcocoa.dataStore("sparta");
  spartaDataStore.on("push",function(data){
  if(data.value.userId == userId) {
    alert('24分間頑張ってください!');
  }
});
</script> 

本体側はだれかが誰かが集中するボタンを押したら
押した人のuserIdをMilkcocoaに送っています。
で、貼り付けられた側はuserIdが自分だったらalertを出すという仕組み。

これ自体はちゃんと動いたのですが
PubNubが動かなくなったのでPubNub部分までMilkcocoa化することに。

PubNubで実装していたチャット部分もMilkcocoa化

https://github.com/pandeiro245/245cloud/pull/36/files
これだけの差分で動きました!

PubNubにおけるsendはMilkcocoaではpushなのと
送る時のパラメータの中でidは予約語だったので取り急ぎid2としました。
(後でリファクタリングする予定)

タイミング見て本番反映予定

今本番反映するとPubNubバージョンで使っている人がチャットできなくなってしまうので
誰もいなくなったタイミングで

$ git push heroku pubnub-to-mlkcca:master

して本番反映予定。

本番反映後、
よろしければ使ってみてバグ報告等頂けると幸いですw

そして、前述しましたが
クライアントJSだけでのTwitterログイン対応、何卒よろしくお願いします!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4