[英]Express with ParseServer - Failed to connect to <ip> port 1337, connection timeout
I configured parse server on my custom server on centos 7. Its working fine when running curl command from this server command prompt for testing its working fine, but when try to call it from my local system terminal using curl then its giving connection timeout. 我在centos 7上的自定义服务器上配置了解析服务器。当从这个服务器命令提示符运行curl命令以测试其工作正常时它工作正常,但是当尝试使用curl从我的本地系统终端调用它时它给出连接超时。 I also try this with my php sdk code. 我也尝试使用我的php sdk代码。
Here is parse server index.js file :--- 这是解析服务器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);
My Php code :- 我的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();
}
When run following url in browser this also gives connection timeout:- http://:1337/test 当在浏览器中跟随url运行时,这也会给出连接超时: - http://:1337 / test
Please help me, what can I do to access it from my client side sdk code? 请帮助我,我该怎么做才能从我的客户端sdk代码访问它?
If you can connect to the server from a prompt on your server directly but not from your local terminal, the problem are either some firewall issues (could be a case when using centos) or the parse process not listening on the correct interface. 如果您可以直接从服务器上的提示连接到服务器而不是从本地终端连接到服务器,则问题是某些防火墙问题(使用centos时可能是这种情况)或者解析过程没有在正确的接口上侦听。
Please check which ip address is used when your httpServer is bound. 请检查绑定httpServer时使用的IP地址。 I assume it isn't bound on the correct interface. 我认为它没有绑定在正确的接口上。 To check which services are listening on which interface, try the following: 要检查哪些服务正在侦听哪个接口,请尝试以下操作:
netstat -an | grep LISTEN
If you see something like localhost
or 127.0.0.1
there for your port number 1337
, the server must be started with a correct IP to bind to. 如果您看到端口号为1337
localhost
或127.0.0.1
,则必须使用正确的IP来启动服务器以进行绑定。 You can pass this as additional parameter like this: 您可以将此作为附加参数传递,如下所示:
httpServer.listen(port, ip, function() { /* ... */ });
Please note that you probably also have to adapt the serverURL
property of your parse configuration to match the correct address. 请注意,您可能还必须调整解析配置的serverURL
属性以匹配正确的地址。 See here . 看到这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.