Node.js 无法在浏览器客户端中接收消息

Node.js 无法在浏览器客户端中接收消息,node.js,publish-subscribe,faye,Node.js,Publish Subscribe,Faye,我尝试创建酒吧订阅即时消息服务失败。我无法在浏览器客户端中接收消息 以下代码来自我的client1.html文件。我相信我遇到的问题与客户端未能成功订阅“/频道”有关。我已经添加了警报,并且正在接收“BEFORE&AFTER”而不是“DURING”,并且message.text没有出现在控制台上。如果您想知道为什么客户端无法在浏览器上看到消息,我们将不胜感激 var client = new Faye.Client('/faye',{ timeout: 20 }); alert("BEF

我尝试创建酒吧订阅即时消息服务失败。我无法在浏览器客户端中接收消息

以下代码来自我的client1.html文件。我相信我遇到的问题与客户端未能成功订阅“/频道”有关。我已经添加了警报,并且正在接收“BEFORE&AFTER”而不是“DURING”,并且message.text没有出现在控制台上。如果您想知道为什么客户端无法在浏览器上看到消息,我们将不胜感激

var client = new Faye.Client('/faye',{
    timeout: 20
});
alert("BEFORE client subscription");
client.subscribe('/channel', function(message) {
    $('#messages').append('<p>' + message.text + '</p>');
    alert("DURING client subscription");
    console.log(message.text);
});
alert("AFTER client subscription");
此错误指向“faye browser.js:2023”,它引用了以下行:

xhr.send(Faye.toJSON(message));
编辑 这是server.js文件

var fs = require("fs");
var config = JSON.parse(fs.readFileSync("config.json"));
var host = config.host;
var port=config.port;
var express = require("express");
var Faye   = require('faye');
var bayeux = new Faye.NodeAdapter({mount: '/faye', timeout:45});
var app = express();
app.configure(function(){
  app.use(express.bodyParser());
  app.use(express.static('/'+__dirname));
});
app.post('/message', function(request, response){
  bayeux.getClient().publish('/channel', {text:request.body.message});
  console.log('broadcast message:' + request.body.message);
  response.send(200);
});
bayeux.attach(app);
app.listen(port);

我刚刚为我们的应用程序配置了Faye,您正在做什么

bayeux.attach(app);
app.listen(port);
对我不起作用,这起作用的是什么

bayeux.attach(app.listen(port, function() {}));

我还认为,在创建Faye时,您应该使用整个url,而不仅仅是最后一部分,如:

var client = new Faye.Client('http://my.url.com/faye', { timeout: 20 });

我刚刚为我们的应用程序配置了Faye,您正在做什么

bayeux.attach(app);
app.listen(port);
对我不起作用,这起作用的是什么

bayeux.attach(app.listen(port, function() {}));

我还认为,在创建Faye时,您应该使用整个url,而不仅仅是最后一部分,如:

var client = new Faye.Client('http://my.url.com/faye', { timeout: 20 });

浏览器代码看起来不错。你能提供服务器faye代码吗?我唯一怀疑的是你的网址。您显然更改了URL,但很难说您是交换了作品并保留了格式,还是只是在一个随机地址中。@用于随请求发送用户名/密码查询。@travis我已经更新了问题。浏览器代码看起来不错。你能提供服务器faye代码吗?我唯一怀疑的是你的网址。您显然更改了URL,但很难说您是交换了作品并保留了格式,还是只是在一个随机地址中。@用于随请求一起发送用户名/密码查询。@travis我已经更新了问题。我还认为在创建Faye时,您应该使用整个url,而不仅仅是最后一部分,如:var client=new Faye.client,{timeout:20};为了将来参考他人,这一点不起作用…@JoeAustin:嗨,我也面临着同样的问题,我能够向服务器发送消息,但不能将消息从服务器发布到所有客户端。我在客户端为faye使用的url有什么问题吗?如果你有时间,请看一下我的密码。还有一件事我得到了websocket错误,你知道吗?我还认为你应该在创建Faye时使用整个url,而不仅仅是最后一部分,比如:var client=new Faye.client,{timeout:20};为了将来参考他人,这一点不起作用…@JoeAustin:嗨,我也面临着同样的问题,我能够向服务器发送消息,但不能将消息从服务器发布到所有客户端。我在客户端为faye使用的url有什么问题吗?如果你有时间,请看一下我的密码。还有一件事我发现websocket错误,你知道吗?