首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法访问部署在Heroku上的Mosca mqtt代理

无法访问部署在Heroku上的Mosca mqtt代理
EN

Stack Overflow用户
提问于 2016-10-25 20:28:11
回答 2查看 1.5K关注 0票数 1

代码语言:javascript
运行
复制
const express    = require('express');
const helmet     = require('helmet');
const bodyParser = require('body-parser');
const morgan     = require('morgan');
const path       = require('path');
const server     = require('./modules/server');
const dashboard  = require('./modules/dashboard');
const config = require('./config');
const routes = require('./routes');

const app  = express();

app.use(helmet()); // secure http communication middleware
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(morgan('tiny')); // http request logger
app.use('/', routes);
app.use('/public', express.static(path.join(__dirname, '/public')));

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

/**
 * Mosca Server Settings below
 */
var mosca = require('mosca');
var http = require('http');
var httpServer = http.createServer(app);

var moscaSettingss = {
  type: 'mongo',
  url: 'mongodb://***:31157/mqtt',
  pubsubCollection: 'pub_sub',
  mongo: {}
};

httpServer= new mosca.Server({
  backend: moscaSettingss,
  persistence: {
    factory: mosca.persistence.Mongo,
    url: 'mongodb://***:31157/mqtt'
  }
}, function() {
  httpServer.attachHttpServer(app);
});

httpServer.on('ready', function() {
  console.log('Mosca is running');
});

httpServer.on('clientConnected', function(client) {
  console.log('client connected', client.id);
});

httpServer.on('published', function(packet, client) {
  console.log('Published : ', packet.payload);
});

httpServer.on('subscribed', function(topic, client) {
  console.log('subscribed : ', topic);
});

httpServer.on('unsubscribed', function(topic, client) {
  console.log('unsubscribed : ', topic);
});

httpServer.on('clientDisconnecting', function(client) {
  console.log('clientDisconnecting : ', client.id);
});

httpServer.on('clientDisconnected', function(client) {
  console.log('clientDisconnected : ', client.id);
});

/**
 * End of Mosca Server Settings
 */

app.listen(config.server.port, () => {
  console.log(`Magic happens on port ${config.server.port}`);
});

module.exports = app;

我已经做了一个快速的应用程序,其中包含mosca mqtt代理。有些原因是我无法连接到mqtt。已尝试所有可能的urls。

在express应用中,我制作了一个mqtt客户端,它成功地连接到了代理。但在Heroku之外,我的设备无法连接。

正在等待响应。

EN

回答 2

Stack Overflow用户

发布于 2016-12-22 03:35:37

Heroku不会打开MQTT所需的端口。这就是为什么express可以在本地访问它,但你的设备都不能。

票数 0
EN

Stack Overflow用户

发布于 2017-01-17 15:05:46

我也会尝试ws://mevris-cloud.herokuapp.com:80。它起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40239992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档