2017-08-09 118 views
0

我在雲端有一個託管服務器。我正在嘗試使用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兩個實例。 瀏覽器中的控制檯還會打印具有「connected:true」的套接字變量。

但是,我沒有看到終端中的「已連接」(來自server.js),它只是空白。

此網站已在本地運行,但在嘗試使其在Cloudways上運行時出現這些問題。

任何想法?

我已經嘗試將「localhost」切換到域名和IP地址,並且我嘗試了不同的端口,但3000是唯一一個可以讓我無錯地啓動server.js的端口。

enter image description here

編輯

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

感謝您嘗試幫助我,但是當我這樣做時,我只是在嘗試創建套接字時在控制檯中收到「404」(未找到)錯誤。 – Bergkamp10

+0

您是否嘗試在您的終端(雲)中使用npm安裝socket.io軟件包? –

+0

是的,通過安裝npm – Bergkamp10

回答

0

也許是您的PHP索引...因爲您設置了本地主機和端口。

我不確定Cloudway是如何工作的。但是,當我們運行server.js,有些雲彩給一些URL訪問我們的項目...

在你cloudways嘗試使用,他們給你的官方網址訪問項目:

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

例如,我使用CLOUD9,當我執行server.js,返回一個網址,如:

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並與路徑添加腳本標記,如:

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

實驗值:有些雲彩,你需要設置的網址在<script>標籤

<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://。似乎它被編輯了出來。如果我在這裏輸入網址,則http://被刪除 – Bergkamp10