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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Socket.IO

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

Q&A

1回答

5439閲覧

TypeError: require(...).listen is not a function というエラーがでます。

tyl

総合スコア0

Socket.IO

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

0グッド

0クリップ

投稿2021/07/24 06:40

編集2021/07/26 10:05
io = require('socket.io').listen(app), TypeError: require(...).listen is not a function

とでてしまいます。
解決方法を教えていただきたく思います。

スクリプト app.js

var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs'); app.listen(1337); io.set('log level', 1); function handler(req, res) { fs.readFile(__dirname + '/index.html', function(err,data) { if(err) { res.writeHead(500); return res.end('Error'); } res.writeHead(200); res.write(data); res.end(); }) } io.sockets.on('connection', function(socket){ socket.on('emit_from_client', function(data){ // console.log(data); // socket.emit('emit_from_server', 'hello from server: ' + data); // socket.broadcast.emit('emit_from_server', 'hello from server: ' + data); socket.client_name = data.name; io.sockets.emit('emit_from_server', '[' + socket.client_name + '] : ' + data.msg); }); });

---追記---

io = require('socket.io').listen(app),

の[.listen]を削除してみたら、今度は次のエラーが発生しました。

io.set('log level', 1); ^ TypeError: io.set is not a function

こちらも何か解決策があればご回答のほど、よろしくお願い致します。

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

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

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

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

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

odataiki

2021/07/25 02:33

提示頂いているスクリプトは<code>(コードの挿入)の中に記述すると 読みやすい形で表示されて視認性が上がりますので回答がもらいやすくなります。 質問文を編集した方が良いでしょう。
tyl

2021/07/26 00:59

ご指摘ありがとうございます。 改善してみます。
guest

回答1

0

提示頂いたスクリプトの上から2行分、
カンマじゃなくてセミコロンではないでしょうか?

var app = require('http').createServer(handler);//,ではなく; io = require('socket.io').listen(app);      //,ではなく;

[2021/07/26追記]
こちらに答えがありました。
https://teratail.com/questions/336168

io = require('socket.io')(app)

投稿2021/07/25 02:36

編集2021/07/26 04:15
odataiki

総合スコア973

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

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

tyl

2021/07/26 00:56

ご回答ありがとうございます。 上記のように記述してみたのですが、エラーのままでした。
tyl

2021/07/26 10:03

そちらの方法も試してみたのですが、追記のようなエラーが出てしまいました。
tyl

2021/08/15 01:09

ご回答ありがとうございます。 こちらの情報参考にさせていただきました。 エラーは出なくなったようなのですが、他にポートの問題など発生してしまい、今はとりあえずその対処を行っております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問