Home > Archives > 2011-06

2011-06

[javascript] 「node.jsでwebsocketを試してみたんだ。」のまとめ。

Pocket

Socket.IO: the cross-browser WebSocket for realtime apps.

node.jsで満足していたんだけど、websocketも試してみたいという欲があって、インストールしてみたときのメモ。

このページを見て完結できるように、ちょっと先日のブログを復唱します。

【かんきょう】
 OS:fedora15
 node.js:v0.4.8
 npm:1.0.10
 socket.io:0.6.18 ./node_modules/socket.io

【こうもく】
 1. git のインストール
 2. nvmのインストール
 3. node.js のインストール
 4. npm (Node Package Manager) のインストール
 5. socket.io のインストール
 6. node.js のサンプル(チャットアプリ)を試してみる
 7. websocket(socket.io) のサンプル(チャットアプリ)を試してみる

では、長くなります。。。

1. git のインストール

git(ぎっと)はオープンソースの分散型バージョン管理システムです。ファイルの変更履歴を管理します。
GPLライセンスの下で公開されていて、自己責任の下で、だれもが git を使用することができます。

※”じっと”って今まで読んでたんだな。w ちゅういちゅうい。

# yum install git

2. nvmのインストール

nvm は Node Version Manager のことで、Node.js のインストール、バージョンごとの管理、シェルの環境設定を管理できる。
nvm を使うには github のリポジトリから git cloneする。
# git clone git://github.com/creationix/nvm.git ~/.nvm

3. node.js のインストール

node.jsに必要なライブラリをインストールする必要があるので
# yum install gcc-c++ openssl-devel

github のリポジトリから git cloneする。
# git clone git://github.com/ry/node.git
もしくは
# nvm install v0.4.8

4. npm (Node Package Manager) のインストール

npm というのは、node.js 用のパッケージマネージャー。今回は、socket.IO のインストールで使用。
https://github.com/isaacs/npm のドキュメントに従って作業。

ここで、3にある、nvm install v0.4.8を行ったときに同時にnvmもインストールされます。
# nvm use v0.4.8
「Node Package Managerを使用しますよぉ」と宣言したあとに、
# npm install socket.io

これで、すべて環境が整うはずです。

で、環境を整えた後に試したいのが、サンプル。

1) node.jsのサンプル

node.jsを使ったチャットアプリサンプル
ry-node_chat – GitHub

デモのチャットアプリをダウンロード。
# git clone git://github.com/ry/node_chat.git
※自分がいるディレクトリ上にフォルダが作成。

で、
# cd node_chat
# node server.js

を実行。
ターミナルにはこのように表示される。

Server at http://127.0.0.1:8001/

アクセスしてみてください。
で、ニヤニヤしてください。w

2) socket.ioのサンプル

npmによりインストールしたsocket.ioパッケージのサンプルがある場所は、
node_modules/socket.io/example/に置いてあります。
node_modules/socket.io/example/server.jsというサーバのサンプルプログラムを実際に実行してみる。
(理解したい、知りたい場合は、ソースの中身を見てね。というか、ここのブログを見て。)
Node.jsでWebSocketを試してみる – YutaKikuchiのTechBlog

# node node_modules/socket.io/example/server.js

サンプルのSocketサーバの起動すると、ターミナルには

10 Jun 18:43:07 – socket.io ready – accepting connections

と表示されます。

アクセスするURLは
http://127.0.0.1:8080/
です。

複数のWebブラウザでアクセスしてコメントを投稿してみるとWebSocketのチャットが利用可能。
もちろん、いろんなブラウザからアクセスしてひとりでチャットしました。


【memo】
node.js
Node.js Manual & Documentation(APIマニュアル@日本語)
node.js ハンズオン資料 — node.js hands-on v1.0 documentation
連載インデックス「Node.jsでサーバサイドJavaScript開発入門」 – @IT
【libro】 JavaScriptによるHTML5プログラミング入門/WebSocketによるクライアント=サーバー通信/AjaxからWebSocketへ!


【参考にさせていただいたブログ】
jmblog.jp – さくらの VPS に node.js + npm + Socket.IO をインストールする手順
Node.jsでWebSocketを試してみる – YutaKikuchiのTechBlog
SE奮闘記: node.js, socket.ioをInstallしてWebSocketを試す(Install編)
50行くらいで作るnode.js + socket.ioのサンプルプログラム – 大人になったら肺呼吸
Node.jsとnvmを初めてインストールするときのハマりポイントと対策 – ess sup

次はなにしようかなぁ?

From xxxYukihiroxxx

Pocket

[memo] やってみたかったnode.js のインストールまとめ [fedora]

Pocket

興味深いというか、これをつかった何かができるんじゃないか?って思いながらのインストール作業メモ。
node.jsってなんぞや?とか、いろいろ調べていたところ、図で分かりやすいページを発見したんで、ご紹介。

2010年11月10日現在の記事だけど、丁寧な説明。node.jsとWebSocketの利用シーン « Business RIA 研究所
http://bizria.jp/technical/nodejs-webssocket.html

で、本題。

Node.js
公式サイト:http://nodejs.org/
以下、wikiより引用。

Node.js はUnix系プラットフォーム上のV8 JavaScriptエンジンでイベント化された入出力を扱うフレームワークである。Webサーバなどのスケーラブルなネットワークプログラムの記述を意図している。
Node.jsはPythonのTwisted、PerlのPerl Object Environment、RubyのEventMachineと同様の目的を持つ。 ほとんどのJavaScriptとは異なり、Webブラウザの中で実行されるのではなく、サーバサイドJavaScriptに関連している。 Node.jsはいくつかのCommonJS仕様を実装している[1]。 Node.jsは対話的なテスト用にREPL(Read-eval-print loop)環境を含んでいる。

今回インストールするうえで非常に参考になったブログをご紹介!
ServersMan@VPS node.js のインストール
SE奮闘記 node.js, socket.ioをInstallしてWebSocketを試す(Install編)
感謝です。

では、コマンドライン張りつけ。

まずは、gitから簡単にインストールできるようにyum経由インストールを実行。
# yum install git

これを入れちゃえば、絵の通りになるから簡単にインストールできます。

node.jsのコンパイルに必要なパッケージもインストールする必要があります。

# yum install gcc-c++ openssl-devel

こう書くことで、依存性解決もyum自信がやってくれます。
実際のログはこちら。

# yum install gcc-c++ openssl-devel
読み込んだプラグイン:refresh-packagekit
インストール処理の設定をしています
依存性の解決をしています
–> トランザクションの確認を実行しています。
—> Package gcc-c++.i686 0:4.6.0-9.fc15 will be インストール
–> 依存性の処理をしています: libstdc++-devel = 4.6.0-9.fc15 のパッケージ: gcc-c++-4.6.0-9.fc15.i686
—> Package openssl-devel.i686 0:1.0.0d-1.fc15 will be インストール
–> 依存性の処理をしています: krb5-devel のパッケージ: openssl-devel-1.0.0d-1.fc15.i686
–> トランザクションの確認を実行しています。
—> Package krb5-devel.i686 0:1.9-7.fc15 will be インストール
–> 依存性の処理をしています: libselinux-devel のパッケージ: krb5-devel-1.9-7.fc15.i686
–> 依存性の処理をしています: libcom_err-devel のパッケージ: krb5-devel-1.9-7.fc15.i686
–> 依存性の処理をしています: keyutils-libs-devel のパッケージ: krb5-devel-1.9-7.fc15.i686
—> Package libstdc++-devel.i686 0:4.6.0-9.fc15 will be インストール
–> トランザクションの確認を実行しています。
—> Package keyutils-libs-devel.i686 0:1.2-7.fc15 will be インストール
—> Package libcom_err-devel.i686 0:1.41.14-2.fc15 will be インストール
—> Package libselinux-devel.i686 0:2.0.99-4.fc15 will be インストール
–> 依存性の処理をしています: libsepol-devel >= 2.0.32-1 のパッケージ: libselinux-devel-2.0.99-4.fc15.i686
–> 依存性の処理をしています: pkgconfig(libsepol) のパッケージ: libselinux-devel-2.0.99-4.fc15.i686
–> トランザクションの確認を実行しています。
—> Package libsepol-devel.i686 0:2.0.42-2.fc15 will be インストール
–> 依存性解決を終了しました。

依存性を解決しました

パッケージとしてインストールされたのは以下の通り。
gcc-c++
openssl-devel
依存性関連でのインストールをします。:
keyutils-libs-devel
krb5-devel
libcom_err-devel
libselinux-devel
libsepol-devel
libstdc++-devel

次はnvmのInstallです。
このnvmとは、Node Version Manager のことで、Node.js のインストール、バージョンごとの管理、シェルの環境設定をやってくれるんで、助かります。

# nvm install v0.4.8

ってコマンド入れたら、
-bash: nvm: コマンドが見つかりません
おぉ、、、いれなきゃ。
ということで、

# git clone git://github.com/creationix/nvm.git ~/.nvm

gitで指定されたURLを貼るだけ。
https://github.com/creationix/nvm#readme

ログは以下の通り。

# git clone git://github.com/creationix/nvm.git ~/.nvm
Cloning into /root/.nvm...
remote: Counting objects: 197, done.
remote: Compressing objects: 100% (100/100), done.
remote: Total 197 (delta 104), reused 176 (delta 89)
Receiving objects: 100% (197/197), 26.25 KiB, done.
Resolving deltas: 100% (104/104), done.

で、2011年6月8日現在は最新v.0.4.8なので(これは調べてください。)
node.js

# nvm install v0.4.8
これでインストール完了です。

ログの内容。

Now using node v0.4.8
/usr/bin/which: no npm in (/root/.nvm/v0.4.8/bin:/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
Installing npm…
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3874 100 3874 0 0 4668 0 –:–:– –:–:– –:–:– 10330
fetching: http://registry.npmjs.org/npm/-/npm-1.0.10.tgz
0.4.8
1.0.10
prefix=/root/.nvm/v0.4.8

This script will find and eliminate any shims, symbolic
links, and other cruft that was installed by npm 0.x.

All clean!
! [ -d .git ] || git submodule update –init
node cli.js cache clean
node cli.js rm npm -g -f –loglevel error
node cli.js install -g -f
/root/.nvm/v0.4.8/bin/npm -> /root/.nvm/v0.4.8/lib/node_modules/npm/bin/npm.js
npm@1.0.10 /root/.nvm/v0.4.8/lib/node_modules/npm
It worked

本当にインストールされているのかを確認。
# node -v
v0.4.8

無事にv.0.4.8がインストールされているみたいです。

インストールされたのであれば、サンプル動かしたいですよね?ってことで、調べました。
ry-node_chat – GitHub

デモのチャットアプリをダウンロード。

# git clone git://github.com/ry/node_chat.git
※自分がいるディレクトリ上にフォルダが作成されます。

で、
# cd node_chat
に移動して、

# node server.js
を実行すると…

Server at http://127.0.0.1:8001/

おぉ!立ち上がってくれました。
早速ブラウザでアクセスしてみると、出ました。

以下コマンドライン上のログです。

loading index.html...
static file index.html loaded
loading client.js...
loading jquery-1.2.6.min.js...
loading style.css...
static file client.js loaded
static file style.css loaded
static file jquery-1.2.6.min.js loaded
xxxYukihiroxxx join
pinkzircon join hello
year Hey! :)
あああ 近藤 幸裕
漢字もおっけー!
pinkzircon part
pinkzircon join
pinkzircon part
xxxYukihiroxxx part
^C

あ。カタカナやるの忘れた。。。

外部からのアクセス可能にしたい場合は、ポートをあける必要がありますが、ポートを開ける=扉を開けるということになりますのでセキュリティを把握したうえでやらないといけませんね。

node.jsの勉強をするのであれば、こちらを見てください。とてもわかりやすいので、ぜひ。
node.js ハンズオン資料 — node.js hands-on v1.0 documentation

From xxxYukihiroxxx

Pocket

[Facebook] 初めてのFacebookページとアプリの考え方(おおまか)

Pocket

※2011年6月6日現在の記事です。

完全に甘く見ていました。
こういうことか!と気が付いた時には手遅れでした。
その内容は後ほど。。。

というわけで、おおまかです。

「ファンページ作成方法」とかキーワードでありますが、これは過去の話であって、今はfacebookページという名前になっています。

ファンページというと、ページのことなのか?アプリのことなのか?まったくわからないので、この際頭の中を整理しましょう。(自分も含む

絵で描くとこんな感じ。

facebookページというのが簡単に作れます。
その中にfacebookアプリというのも外部から提供されているんで、アプリをインストールする具合で考えればいいと思います。
必要ないアプリはすぐに削除できますので。
もちろん、自分で作成したアプリもfacebookページに表示させることは可能です。

では早速。
Facebookページを作成 | Facebookをクリックしてください。
すると、この画面が表示されているはずです。

ここがfacebookページを作成するための窓口です。

次に、アプリに関してです。
アプリケーションを作成をクリックしてください。
すると、この画面が表示されているはずです。

ここがfacebookアプリを作成するための窓口です。

これを知らないと、自分の二の舞になってしまいますので、ご注意を。
ページとアプリは別物。

よーくアドレスバーを見てください。

Facebookページは、
http://www.facebook.com/pages/***

Facebookアプリは、
http://www.facebook.com/apps/***

になっています。

同じ名前で作ってると、どっちがどっちなのかわからなくなる可能性もあるので、URLを確認してみてください。

自分はFacebookアプリで自分のアプリを作った後、外部からのFacebookアプリを自分が作成したFacebookアプリのURLにインストールしていました。
で、そこではじめて気が付いたんです。そういえば、これってアプリだけど、ページじゃないの?!ということに。w

一度作成した人は概念がわかるはずです。
ブログとか記事を見てたらあー、なるほどね。と思ってたんですが、実際に作成してみないと、わかんないこといっぱいありますね。

最後に、ファンが25人以上いると、ユーザーネーム(ユニークURL)といって、ユーザーネームを取得できるんです。
https://www.facebook.com/help/?page=900

だから、今は0人なので、
http://www.facebook.com/pages/xxxYukihiroxxx/215451995155018
ってxxxYukihiroxxxの後に、数字がばーっと表示されたURLじゃないとアクセスできないんですが
25人以上になると、http://www.facebook.com/pages/xxxYukihiroxxx/だけでアクセスできるようになるんです!

lab的なページとアプリをコツコツ積み上げていくんで、よかったらいいね!押してやってください。:)

From xxxYukihiroxxx

Pocket

[fedora] Fedora14→Fedora15 ネットワークインストール・アップグレードめも

Pocket


Fedora Project

先月末にリリースされたfedora15をインストールしてみました。

過去のfedoraインストールめもに関しては検索結果を参照してください。

今回はかなり簡単になりましたね。
とてもわかりやすかったです。

http://fedoraproject.org/wiki/Upgrading_Fedora_using_yum#Fedora_14_-.3E_Fedora_15

Fedora 14 -> Fedora 15

First install the new fedora 15 gpg key. You may wish to verify this package against https://fedoraproject.org/keys and the fedora ssl certificate.

rpm --import https://fedoraproject.org/static/069C8460.txt

Upgrade all packages with

yum update yum
yum clean all
yum --releasever=15 --disableplugin=presto distro-sync

* Do not run this from within an X terminal. Testing shows that X might hang while updating bitmap font packages.
* There exist .drpms, but they don’t match, due to a format change, so better disable the presto plugin.

これだけ。

自分の場合、fedora7からほとんどアップグレードで切り替えているので、結構使ってないファイルとかがあって、yumで見ると過去のfedora12とか13の時のライブラリが見つかりました。
もうそろそろ、まっさらにした状態でインストールして、安定運用させた方が無難かと思いましたね。

システム依存チェックもさらっといけるかと思いきや、NG。
GNOMEで不具合があって、removeした後、なんとか2時間ぐらいでアップグレード完了しました。

fedora14まで長く使わせていただいていた、phpMyVisitesなんですが、PHP Warningがいきなり出てるので、おかしい。とerror_logを見ていたら
PHP Warning: mysql_insert_id(): Can’t connect to local MySQL server through socket
とのこと。

MySQLでうまくつながってないみたい。
ということで、調べたところ、ありました。

MySQL 5.5で「default-character-set」が使えず文字化けする→「character-set-server」にするとOK | KennyQi PHP Blog
感謝です。

「default-character-set」というオプションが廃止されて、「character-set-server」になった模様。

# vi /etc/my.cnf

# default-character-set=utf8 ←ここはコメントアウト
character-set-server=utf8 # ここを追加

ついでに、アクセスログも最近のにしてみようかな?とAKARIを候補にしました。

AKARI
http://akari.sourceforge.jp/

AKARIプロジェクトページ
http://sourceforge.jp/projects/akari/

が、Piwikにしてみました。w

結構使いやすいです。

実は古いマシンがあれば、Ubuntuもやっていたいと思ってる今日この頃。

From xxxYukihiroxxx

Pocket

Home > Archives > 2011-06

Search
Feeds

Return to page top