2013-07-02 64 views
1

我嘗試創建發佈 - 即時消息服務失敗。我無法在瀏覽器客戶端收到消息。無法在瀏覽器客戶端中接收郵件

以下代碼來自我的client1.html文件。我相信我遇到的麻煩與客戶訂閱'/頻道'失敗有關。我已經添加了警報,並且正在接收'之前&'但不是'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"); 

瀏覽器控制檯再三重複以下錯誤:

POST http://[email protected]:8000/faye 404 (Not Found) 

此錯誤指向 '菲-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); 
+1

瀏覽器代碼看起來不錯。你能提供服務器的faye代碼嗎?我唯一質疑的是你的網址。您顯然已更改了網址,但很難判斷您是否交換了作品並保留了格式,或者只是通過隨機地址進行了操作。 '@'用於發送用戶名/密碼查詢以及請求。 – travis

+0

@travis我已經更新了這個問題。 –

回答

4

我剛剛配置王菲爲我們的應用程序,你正在做

bayeux.attach(app); 
app.listen(port); 

沒有工作對我來說,什麼工作是這個

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

我也認爲你應該當您創建Faye時,請使用整個網址,而不僅僅是最後一部分,如下所示:

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

非常感謝。它的工作 –

+0

真的有幫助,thx! 「 – nich

+0

」我也認爲你應該在創建Faye時使用整個url,而不僅僅是最後一部分,如下所示: var client = new Faye.Client('http://my.url.com/faye' ,{timeout:20});「 爲了將來引用其他人,這位沒有工作... –

相關問題