我是Pusher的新手,目前在尝试从一个简单的JS Web客户端发送数据时遇到错误,并且我想弄清楚这是代码错误还是浏览器问题(我怀疑是浏览器问题)。发生的事情是,我使用一个简单的Perl脚本通过Pusher服务将文本消息发送到在FireFox 23.0.1中运行的Web客户端。消息已正确接收(是!),但是当我尝试发送返回消息时,在“ pusher.min.js(第65行)”处出现“未捕获的异常:[object Object]”错误,其中出现了Pusher库代码它试图创建一个Flash对象...

uncaught exception: [object Object]
...try{return Boolean(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))}catch(a){...


该代码是Pusher网站上许多JS演示的略微变化...

<!DOCTYPE html>
<head>
  <title>Pusher Test</title>
  <script src="http://js.pusher.com/2.1/pusher.min.js" type="text/javascript"></script>
  <script type="text/javascript">
    // Enable pusher logging - don't include this in production
    Pusher.log = function(message) {
        if (window.console && window.console.log) {
            window.console.log(message);
        } //end if
    }; //end function

    var channelName='test_channel';
    var eventName='status_update';

    var pusher = new Pusher( [AppID removed] );
    var channel = pusher.subscribe(channelName);
    var callback = function(data) {
        // add comment into page
        alert(data);
        console.log(data);
        var triggered = channel.trigger(channelName, {data:"hello yourself"});
    }; //end callback

    pusher.bind(eventName, callback);
  </script>
</head>


已安装并启用Flash(版本11.8.800.168)。

代码正确还是我在做一些愚蠢的事情?如果代码正确,那么有人对我如何解决此问题有想法吗?

最佳答案

只需将status_update更改为client-status_update。


  客户端事件必须以client-为前缀。具有任何其他前缀的事件将被Pusher服务器拒绝,发送到未订阅客户端的频道的事件也会被拒绝。


http://pusher.com/docs/client_api_guide/client_events

关于javascript - 使用Pusher库从JS Web客户端生成异常发送数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21438089/

10-12 07:01