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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

4412閲覧

node.js + socket.ioに接続できない

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Socket.IO

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2016/10/19 14:13

編集2016/10/20 13:55

Windows上のVagrantで、CentOS6.7上にNode.jsとSocket.ioをインストールしました。

PCとスマホは同一LAN内にあり、またどちらもWifiに接続しています。
Windowsファイアウォールは設定済です。
最終的にグローバルに公開することを考えています。

サンプルのチャットを動かそうとしたところ、
ポートフォワードの場合は、ホストOS上からの接続は動的静的の両方とも正常に動作しますが、
スマホからの接続は時間超過が表示されるのみです。
ブリッジ接続の場合だと、ホストOSからもスマホからも
静的な部分は表示されますが、チャットの機能である「発言」が動作しません。
(ホストOSで2つ、スマホで1つのタブを開いていました)

どの部分が問題なのでしょうか?

vagrantfile

1config.vm.box = "bento/centos-6.7" 2config.vm.network :public_network, :auto_config => false 3config.vm.synced_folder "./app/", "/vagrant" 4config.vm.provision :shell, :path => "bootstrap.sh"

bootstrap.sh

1#/bin/sh 2 3sudo ifconfig eth1 192.168.1.160 netmask 255.255.255.0 up 4sudo route del default gw 10.0.2.2 eth0 5sudo route add default gw 192.168.1.1 eth1 6sudo yum install perl -y 7curl -L git.io/nodebrew | perl - setup 8echo "export PATH=$HOME/.nodebrew/current/bin:$PATH" >> $HOME/.bash_profile 9source $HOME/.bash_profile 10nodebrew install-binary stable 11nodebrew use stable

ip rの結果
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.160
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.1.1 dev eth1

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

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

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

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

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

nagaetty

2016/10/20 03:44

ゲストOS側のルーティングの問題だと思われます。ip r コマンドを実行して結果を追加してはいかがでしょうか?ソースコードも資料として添付していただければと思います。
退会済みユーザー

退会済みユーザー

2016/10/20 13:56

ありがとうございます、只今追記しました。
guest

回答1

0

ベストアンサー

解決しました。
投稿していないソースコードが原因でした。申し訳ないです。

【解決方法】
index.htmlを編集しました。
編集前

var ioSocket = io.connect( "http://localhost:3000" );

編集後(192.168.1.160は仮想ホストのIPアドレス)

var ioSocket = io.connect( "http://192.168.1.160:3000" );

出典はこちら

投稿2016/10/20 14:24

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問