2017-08-09 4 views
0

私はcloudwaysで管理対象サーバーを持っています。私はsocket.ioを使用しようとしています。Socket.io、サーバーが接続イベントに応答しません

client.php:

var socket = io('http://localhost:3000'); 
console.log(socket); 

server.js:

var app = require('express')(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 

server.listen(3000); 

io.on('connection', function(socket){ 
console.log('is connected'); 
}); 

がページを訪問し、私は、コンソールのネットワークセクションに200 OKの2つのインスタンスを参照してください。 ブラウザのコンソールには、 "connected:true"のソケット変数も表示されます。

しかし、端末(server.jsから)に「接続されていません」と表示されていません。ただ空白です。

このサイトはローカルで動作していますが、これらの問題はCloudwayで動作させるときに表示されます。

アイデア?

ドメイン名とIPアドレスの両方に "localhost"を切り替えようとしましたが、別のポートを試しましたが、エラーなしでserver.jsを起動できるのは3000だけです。

enter image description here

EDIT

Cloudwaysは、ポート3000を使用する必要があることを確認しています。

私は(IOにURLを変更しようとしている)に:

var socket = io('http://my-cloudways-url:3000'); (net::ERR_EMPTY_RESPONSE) 
var socket = io('http://www.my-domain.club:3000'); (net::ERR_EMPTY_RESPONSE) 
var socket = io('http://ip-adr:3000'); (net::ERR_EMPTY_RESPONSE) 

そして今日、私は

var socket = io('http://localhost:3000'); (net::ERR_CONNECTION_REFUSED) 

を取得しています、私も(同じ住所が/ポートを使用して)io.connectを試してみました。

+0

が私を助けようとしてくれてありがとう、あなたの<script>タグでURLを設定する必要が

<script src="js/socket.io.js"></script> 

、しかし、これを行うときに、ソケットを作成しようとすると、コンソールに "404"(見つからない)エラーが表示されます。 – Bergkamp10

+0

端末(クラウド)にnpmを含むsocket.ioパッケージをインストールしようとしましたか? –

+0

はい、npmを通じてインストールされました – Bergkamp10

答えて

0

おそらくあなたのPHPインデックスです...あなたはローカルホストとポートを設定しています。

Cloudwayの仕組みについてはわかりません。しかし、我々はserver.jsを実行したときに、いくつかの雲がアクセス私たちのプロジェクトのためにいくつかのURLを与える...あなたのcloudwaysで

が、彼らはあなたに与えられた公式のURLを使用しようとするには、プロジェクトにアクセス:

var socket = io.connect('url.from.cloudway'); 

例えば、私はcloud9を使用している、と私はserver.jsを実行すると、同様に1つのURLを返す:

Your code is running: https://demo-some-id.c9.io 

そして、私はsocket.io使用しているとき、私は中に設定する必要があります私のインデックスURLのパラIO内部のメーター。

var socket = io('https://demo-some-id.c9.io'); 

クライアント側socket.ioを追加する必要があります。JS versionと同様に、パスでスクリプトタグを追加します。OBS:いくつかの雲は、あなたが

<script src="https://demo-some-id.c9.io/socket.io/socket.io.js"></script> 
+0

var socket = io( 'http:// phpstack-19684-309697 .cloudwaysapps.com:3000 ');それは私に "net :: ERR_EMPTY_RESPONSE"を提供します。 – Bergkamp10

+0

正確なURLを使用します(https://を使用する場合は、httpを使用する場合は使用します)。 –

+0

はい、私はhttp://を使いました。何とか編集されたようだ。ここにURLを入力するとhttp://が削除されます – Bergkamp10

関連する問題