2017-01-06 7 views
1

Я настроил сервер синтаксического анализа на моем настраиваемом сервере на centos 7. Его работа прекрасна при запуске команды curl из командной строки этого сервера для проверки его работоспособности, но при попытке для вызова его из моего локального системного терминала с помощью curl, а затем для его завершения. Я также пробовал это с моим кодом php sdk.Экспресс с ParseServer - Не удалось подключиться к <ip> порт 1337, таймаут соединения

Вот синтаксического анализа сервера index.js файла: ---

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 код: -

<?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 : //: 1337/test

Пожалуйста, помогите мне, что я могу сделать для доступа к нему со своего кода sdk на стороне клиента?

+0

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

ответ

0

Если вы можете напрямую подключиться к серверу из командной строки на своем сервере, но не с вашего локального терминала, проблема связана либо с некоторыми проблемами межсетевого экрана (может быть, при использовании centos), либо при синтаксическом анализе, интерфейс.

Проверьте, какой IP-адрес используется, когда ваш httpServer связан. Я предполагаю, что он не связан с правильным интерфейсом. Для того, чтобы проверить, какие услуги прослушивания, на каком интерфейсе, выполните следующие действия:

netstat -an | grep LISTEN 

Если вы видите что-то вроде localhost или 127.0.0.1 там для вашего номера порта 1337, сервер должен быть запущен с правильным IP для связывания. Вы можете передать это как дополнительный параметр, как это:

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

Пожалуйста, обратите внимание, что вы, вероятно, также придется адаптировать serverURL свойство конфигурации синтаксического анализа, чтобы соответствовать правильный адрес. See here.

 Смежные вопросы

  • Нет связанных вопросов^_^