###前提・実現したいこと
1 フォームにテキスト入力してボタンを押すと スクリプトのsocket.onが起動して emitでサーバーに文字を飛ばします。 2 サーバーに入ってきた文字はonで受け取って emitで再びスクリプトのonに送られ HTMLでブラウザに文字を出力します。 これが当初の計画でした。
###発生している問題・エラーメッセージ
フォームを押しても反応しません。 id と onclick を駆使して 関数に発火させようとするんですが できません。
###該当のソースコード
HTML
<!doctype html> <script src="/socket.io/socket.io.js"></script> <script src="/javascript/chat.js"></script> <script src="http://localhost:1234/socket.io/socket.io.js"></script> <html lang="ja"> <head> <meta charset="utf-8"> <title>チャットする</title> </head> <body> <!-- 送るボタンだよ --> <form> <input type="text" id=data style="wibth:200px;" /> <!--IDがmsg_inputで、msg send() --> <button onclick="msg_send()">語る</button> </form> <script type="text/javascript"> //サーバーに接続 function msg_send(){ var Socket = io.connect("http://localhost:1234"); socket.on('connect', function(){ socket.emit('msg', 'data'); socket.on('msg push', function(msg){ log(msg); }); }); }; </script> </body> </html>
JS
var http = require('http'); //サーバーモジュールを追加 var fs = require('fs'); //htmlを読み込むモジュールを追加 var socketio = require('socket.io') //socket.ioモジュール読み込み var server = http.createServer(); server.on('request', doRequest); server.listen(1234); console.log('サーバーの立ち上げに成功したよ!'); fs.readFile('./chat.html', 'utf-8', function(err, data) { if (err) { res.writeHead(404, {'Content-Type': 'text/plain'}); res.write('ページが見つかりません!'); return res.end(); } }); // サーバーをソケットに紐付ける var io = socketio.listen( server ); console.log('サーバーとsocketの紐付けに成功したよ!') // リクエストの処理 function doRequest(req, res) { fs.readFile('./chat.html', 'UTF-8',function(err, data) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); console.log('htmlファイルの読み込みに成功したよ!') }); }; //ここポイントになるかもしれませんねえ // 接続確立後の通信処理部分を定義 io.sockets.on( 'connection', function( socket ) { // 自分を含む全員宛に送る socket.on( 'msg', function( data ) { // サーバーからクライアントへ メッセージを送り返し sockets.emit( 'msg push', data); }); });
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。