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

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

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

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

JavaScript

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

Q&A

解決済

1回答

3592閲覧

socket.ioに関して

MasakazuFukami

総合スコア1869

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

JavaScript

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

1グッド

0クリップ

投稿2015/10/05 07:38

socketの勉強始めてドットインストールで勉強させていただいております。

ただ、socket.setの部分でnodeがエラーを吐いてしまい進まない状況です。
node: v4.0.0
npm: 2.14.2

躓いている部分
[#08 ソケットごとにデータを保存する](http://dotinstall.com/lessons/basic_socketio/26408

この部分で

javascript

1socket.set('client_name', data.name)

という部分があるのですが
そこで

log

1Missing error handler on `socket`. 2TypeError: socket.set is not a function

このような表示が出てしまい先に勧めない状況です。
こちらどのように対応すればよろしいでしょうか。
サーバ用のapp.jsはこのような感じです。

javascript

1var app = require('http').createServer(handler), 2 io = require('socket.io').listen(app), 3 fs = require('fs'); 4 5app.listen(1337); 6function handler(req, res){ 7 fs.readFile(__dirname + '/index.html', function(err, data){ 8 if(err){ 9 res.writeHead(500); 10 return res.end('Error'); 11 } 12 res.writeHead(200); 13 res.write(data); 14 res.end(); 15 }) 16} 17 18io.sockets.on('connection', function(socket){ 19 socket.on('emit_from_client', function(data){ 20 socket.set('client_name', data.name); 21 socket.get('client_name', function(err, name){ 22 io.sockets.emit('emit_from_server', '[' + name + ']' + data.msg); 23 }) 24 }) 25})

ご教授よろしくお願いします。

moritat-222👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

socket.ioのバージョンがいくつかはわかりませんが、
いつぞや(確か0.9)のバージョンからsocket.set()/socket.get()はdeprecatedになり、1.0でバッサリ切られてた記憶があります
なので、socket.set/socket.getを利用しているところを
socketに直接プロパティを生やしてそこにアクセスするようにすれば動くと思います

進化が早いのはいいのですが、node.js界隈は気を付けないとこういうのがたまにあります・・・

投稿2015/10/05 09:08

khirose

総合スコア251

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

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

MasakazuFukami

2015/10/05 09:11

ありがとうございます! 直接プロパティを付与したらできました!!!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問