LoginSignup
1
0

More than 3 years have passed since last update.

Node.js & Express & Socket.ioで非同期通信しようとしたら"/socket.io.js 404"で上手くいかない

Posted at

はじめに

今までRailsしかやってこなかったのでNode.jsを入門しようと思い, とりあえずexpress-generatorでWebアプリの雛形を作り, Socket.ioを使った簡単な非同期通信チャットアプリを作ろうと思いました.
しかし, npm startしてページを開けても

GET /socket.io/socket.io.js 404

と出てしまい上手くいきませんでした.

色々ググったら解決したので, 備忘録として記事を書きます.
間違ってる部分があればコメントでご指摘頂けると助かります.

環境

macOS Mojava 10.14.6
Node.js 12.13.1
npm 6.12.1
Express 4.17.1
Socket.io 2.3.0

何がダメだったか(私の場合)

このエラーの原因は色々と考えられますが, 私の場合はapp.jsに

var io = require('socket.io')(server);
io.on('connection', function(socket){
  console.log('connected');
});

を入れていたからっぽかったです.
socket関連の処理は, app.jsではなくbin/wwwファイルに書くとのことでした.

解決策

bin/wwwに処理を書きます.

var server = http.createServer(app);

の後に,

//Socket.io
var io = require('socket.io')(server);
io.on('connection', function(socket){
  console.log('connected');
});

を記述すると, 無事ターミナルで
connected
と出力されていました.

1
0
0

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
1
0