2017-01-06 19 views
1

私のカスタムサーバーでcentos 7を構成しました。このサーバーコマンドプロンプトからcurlコマンドを実行すると正常に動作しますが、カールを使用してローカルシステムの端末から呼び出すと、接続タイムアウトが発生します。 私はまた、私のPHP SDKコードでこれを試してください。ExpressとParseServer - 接続に失敗しました<ip>ポート1337、接続タイムアウト

<?php 

require 'autoload.php'; 

use Parse\ParseClient; 
use Parse\ParseObject; 
use Parse\ParseQuery; 
//use Parse\ParseACL; 
//use Parse\ParsePush; 
//use Parse\ParseUser; 
//use Parse\ParseInstallation; 
use Parse\ParseException; 
//use Parse\ParseAnalytics; 
//use Parse\ParseFile; 
use Parse\ParseCloud; 

try { 
    ParseClient::initialize("myAppId", "", "", true); 
    // Users of Parse Server will need to point ParseClient at their remote URL and Mount Point: 
    ParseClient::setServerURL('http://<ip address>:1337', 'parse'); 

//Save data start 
    $gameScore = new ParseObject("GameScore"); 

    $gameScore->set("score", 1337); 
    $gameScore->set("playerName", "zakir"); 
    $gameScore->set("cheatMode", false); 


    $gameScore->save(); 
    echo 'New object created with objectId: ' . $gameScore->getObjectId(); 
} catch (Exception $ex) { 
    // Execute any logic that should take place if the save fails. 
    // error is a ParseException object with an error code and message. 
    echo 'Failed to create new object, with error message: ' . $ex->getMessage(); 
} 

実行がブラウザにURLを以下の場合は、これはまた、接続タイムアウトを与える: - - : のhttp ---

var express = require('express'); 
var ParseServer = require('parse-server').ParseServer; 
var path = require('path'); 

var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI; 

if (!databaseUri) { 
    console.log('DATABASE_URI not specified, falling back to localhost.'); 
} 

var api = new ParseServer({ 
    databaseURI: databaseUri || 'mongodb://localhost:27017/dev',  
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',  
    appId: process.env.APP_ID || 'myAppId',  
    masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!  
    serverURL: process.env.SERVER_URL || 'http://<ip addr>:1337/parse', // Don't forget to change to https if needed  
    liveQuery: { 
    classNames: ["Employee"] // List of classes to support for query subscriptions, this database collections directly used at client end 

    } 
}); 

// Client-keys like the javascript key or the .NET key are not necessary with parse-server 
// If you wish you require them, you can set them as options in the initialization above: 
// javascriptKey, restAPIKey, dotNetKey, clientKey 

var app = express(); 

// Serve static assets from the /public folder 
app.use('/public', express.static(path.join(__dirname, '/public'))); 

// Serve the Parse API on the /parse URL prefix 
var mountPath = process.env.PARSE_MOUNT || '/parse'; 
app.use(mountPath, api); 

// Parse Server plays nicely with the rest of your web routes 
app.get('/', function(req, res) { 
    res.status(200).send('I dream of being a website. Please star the parse-server repo on GitHub!'); 
}); 

// There will be a test page available on the /test path of your server url 
// Remove this before launching your app 
app.get('/test', function(req, res) { 
    res.sendFile(path.join(__dirname, '/public/test.html')); 
}); 


// Web endpoints 
//app.get('/', homeController.index); 
//app.get('/about', aboutController.index); 


var port = process.env.PORT || 1337; 
var httpServer = require('http').createServer(app); 
httpServer.listen(port, function() { 
    console.log('parse-server-example running on port ' + port + '.'); 
}); 

// This will enable the Live Query real-time server 
ParseServer.createLiveQueryServer(httpServer); 

私のPHPコード:ここで

は、ファイルindex.js解析サーバです://:1337/test

私のクライアント側のSDKコードからアクセスするにはどうすればよいですか?

+0

"http:// :1337/parse'" –

答えて

0

サーバーのプロンプトからサーバーに直接接続できますが、ローカルのターミナルからは接続できない場合、問題はファイアウォールの問題(centosを使用している場合があります)か、インタフェース。

httpServerがバインドされているときに使用するIPアドレスを確認してください。私はそれが正しいインターフェイスにバインドされていないと仮定します。サービスは、次のことを試しているインターフェイス上でリッスンしている確認するには:

netstat -an | grep LISTEN 

あなたのポート番号1337のためにそこにlocalhostまたは127.0.0.1のようなものが表示されている場合、サーバーはにバインドするために、正しいIPを開始する必要があります。あなたはこのように、このような付加的なパラメータを渡すことができます。

httpServer.listen(port, ip, function() { /* ... */ }); 

あなたはおそらく正しいアドレスと一致するように、解析設定のserverURLプロパティを適応させる必要があることにご注意ください。 See here

関連する問題