在Firefox的Firebug中的客户端,我看到错误
The connection to ws://localhost:9292/faye was interrupted while the page was loading
这是我的application.js文件:
$(function() {
var faye = new Faye.Client('http://localhost:9292/faye');
alert("connected.");
faye.subscribe("/game/poker", function(data) {
eval(data);
});
});
这是我的erb.js文件:
<%= broadcast "/game/poker" do %>
<% @allowed && @user_hand && @game.table.size == 5 && @game.hasler == @game.user.name ? cc = @game.combo_cards(@user_hand) : cc = [1, 2, 3, 4, 5] %>
$("#table").empty().append("<div class='player-cards'>" + "<%= escape_javascript render :partial => "table_cards", :locals => {:cards => @game.table, :combo_cards => cc} %>" + "</div");
$("#deck-size").empty().append("<div class='deck-size'>" + <%= escape_javascript "#{@game.deck.size}" %> +"</div>");
$("#<%= @game.user.name %>_action").empty().append("<%= escape_javascript "#{@game.user.actions.last}" %>");
$("#<%= @game.bot.name %>_action").empty().append("<%= escape_javascript "#{@game.bot.actions.last}" %>");
<% unless @allowed && (@game.bot.moved && @game.user.moved) || @pfold == true %>
$("#deal").hide();
<% end %>
<% if @game.to_call != 0 %>
$("#check").hide();
$("#call").show();
<% else %>
$("#call").hide();
$("#check").show();
<% end %>
<% unless !@pfold && !@allowed %>
$("#fold").hide();
$("#bet").hide();
$("#small2").hide();
$("#small4").hide();
$("#small8").hide();
$("#all_in").hide();
<% end %>
<% end %>
问题是广播块内部没有任何工作。浏览器响应只是空的。 广播方法与railscast相同:
def broadcast(channel, &block)
@action = {:channel => channel, :data => capture(&block)}
@uri = URI.parse("http://localhost:9292/faye")
Net::HTTP.post_form(@uri, :action => @action.to_json)
puts "DEBUG::broadcasting channel"
end
我做错了什么?请尽力帮助。
答案 0 :(得分:0)
根据您的代码,我假设您不使用websocket。在你的application.js上尝试这个,这可能会有用。让我知道
$(function() {
var faye = new Faye.Client('http://localhost:9292/faye');
alert("connected.");
faye.subscribe("/game/poker", function(data) {
eval(data);
});
faye.disable('websocket');
});