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

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

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

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

JavaScript

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

Q&A

解決済

1回答

336閲覧

node.jsのsocket.ioについて

ths

総合スコア21

Socket.IO

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

JavaScript

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

0グッド

2クリップ

投稿2018/01/18 12:02

node.jsでチャットアプリを作りたいと思い、pcではちゃんとメッセージのhtmlが生成されるのですが、iPhoneだとindex.htmlにある <button onclick="publishMessage();">語る</button>の部分しか表示されません。app.jsでapp.use(express.static('/')); と指定しているのですがスマホだとjsの内容が表示されません。以下にソースコードを掲載します。どなたか原因分かる方教えてください...

app.js

//モジュールオブジェクトの初期化 var express = require('express'); var app = express(); var fs = require('fs'); var http = require('http').Server(app); var io = require('socket.io')(http); var port = process.env.PORT || 3000; app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); }); app.use(express.static('/')); // ユーザ管理ハッシュ var userHash = {}; // 2.イベントの定義 io.on("connection", function (socket) { // 接続開始カスタムイベント(接続元ユーザを保存し、他ユーザへ通知) socket.on("connected", function (name) { var msg = name + "が入室しました"; userHash[socket.id] = name; io.emit("publish", {value: msg}); }); // メッセージ送信カスタムイベント socket.on("publish", function (data) { io.emit("publish", {value:data.value}); }); // 接続終了組み込みイベント(接続元ユーザを削除し、他ユーザへ通知) socket.on("disconnect", function () { if (userHash[socket.id]) { var msg = userHash[socket.id] + "が退出しました"; delete userHash[socket.id]; io.emit("publish", {value: msg}); } }); }); http.listen(port, function(){ console.log('listening on *:' + port); });

index.html

<html> <head> <meta charset="UTF-8"> <title>チャット</title> </head> <body> <input type="text" id="msg_input" style="width:200px;" /> <button onclick="publishMessage();">語る</button> <div id="msg"></div> <script src="/socket.io/socket.io.js"></script> <script type="text/javascript"> // 1.イベントとコールバックの定義 var socketio = io.connect('http://localhost:3000'); socketio.on("connected", function(name) {}); socketio.on("publish", function (data) { addMessage(data.value); }); socketio.on("disconnect", function () {}); // 2.イベントに絡ませる関数の定義 function start(name) { socketio.emit("connected", name); } function publishMessage() { var textInput = document.getElementById('msg_input'); var msg = "[" + myName + "] " + textInput.value; socketio.emit("publish", {value: msg}); textInput.value = ''; } function addMessage (msg) { var domMeg = document.createElement('div'); domMeg.innerHTML = new Date().toLocaleTimeString() + ' ' + msg; msgArea.appendChild(domMeg); } // 3.開始処理 var msgArea = document.getElementById("msg"); var myName = Math.floor(Math.random()*100) + "さん"; addMessage("貴方は" + myName + "として入室しました"); start(myName); </script> </body> </html>

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

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

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

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

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

Udomomo

2018/01/18 12:59

スマホはSafariでしょうか?iPhoneの設定でJavaScriptの実行がオフになっていないかや、Chromeなど他のブラウザでは動くかを確認してみてください。もしMacをお持ちであれば、iPhoneとMacをつなぐことで、開発者ツールでエラーがないか確認することもできます。
ths

2018/01/18 22:27

SafariでJavaScriptの設定をONにしています。ですが、会話ログが出ません。
guest

回答1

0

ベストアンサー

スマホ側に開発途上のHTMLがキャッシュされているとか言うことはありませんか?キャッシュをクリアしても結果は同じですか?

投稿2018/01/19 04:41

mit0223

総合スコア3401

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

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

ths

2018/01/26 05:41

返信が遅くなってしまい申し訳ございません。 キャッシュをクリアしたらちゃんとログが表示されました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問