前提・実現したいこと
AWSでSocket.ioを使ってチャット機能を作っているのですが、Socket.ioがうまく動きません。
下記動画をそのままやっているつもりですが、動かず。
参考URL:https://dotinstall.com/lessons/basic_socketio/26404
発生している問題・エラーメッセージ
クライアント⇒サーバー へemitできません。
node app.js でwebサーバーを起動し、
ブラウザからhtmlは表示されるものの、送信ボタンを押しても何も起こらず。
動画によると、nodeを起動させたときにサーバー側で、info - socket.io started と表示されるらしいですが、それも表示されません(バージョンによっては表示されないのが正常?)。
また、ブラウザのconsoleからエラーログはありません。
該当のソースコード
javascript
1var app=require('http').createServer(handler), 2 io = require('socket.io').listen(app), 3 fs = require('fs'); 4app.listen(3000); 5function handler(req, res){ 6 fs.readFile(__dirname + '/index.html', function(err,data){ 7 if(err){ 8 res.writeHead(500); 9 return res.end('Error'); 10 } 11 res.writeHead(200); 12 res.write(data); 13 res.end(); 14 }) 15} 16io.sockets.on('connect_error',function(err){ 17 console.log(err); 18 console.log("aueo"); 19}); 20io.sockets.on('connection', function(socket){ 21 socket.on('emit_from_client',function(data){ 22 console.log(data); 23 socket.emit('emit_from_server', 'hello from server: ' + data); 24 console.log("aaa"); 25 }); 26}); 27console.log("eee");
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>Socket,IOの練習</title> 6</head> 7<body> 8 <form id="myForm"> 9 <input type="text" id="msg"> <input type="submit" value="Send!"> 10 </form> 11 <ul id="logs"></ul> 12 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 13 </script> 14 <script src="/socket.io/socket.io.js"></script> 15 <script> 16 $(function(){ 17 var socket = io.connect(); 18 console.log(socket); 19 //emit: イベントを発信している 20 //on: イベントを待ち受けている 21 $('#myForm').submit(function(e){ 22 e.preventDefault(); 23 socket.emit('emit_from_clien',$('#msg').val()); 24 }); 25 socket.on('emit_from_server',function(data){ 26 console.log("Get from server!"); 27 $('#logs').append($('<li>').text(data)); 28 }); 29 }) 30 </script> 31</body> 32</html>
試したこと
var socket = io.connect();
console.log(socket);
で、中身があることは確認。
しかし、その後のio.sockets.on内のログは一切出力されず。
補足情報
ブラウザ:Chrome最新版(79.0.3945.88)、Firefox、IEでも試しました
Socket.io:2.3.0
Node.js:v12.14.0
サーバー:AWS EC2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/27 14:25