1

サブスクライブ メソッドを 1 回しか呼び出していないにもかかわらず、「チャンネルへの既存のサブスクリプション」例外をスローする小さなスニペットがあります。

これは、サブスクライブ要求を「state_change」ハンドラーの外に移動することで回避できますが、何が原因なのだろうか? プッシャーライブラリのバグでしょうか?

<!doctype html>
<html>
<body>
    <h1>Pusher subscribe testcase</h1>
    <p>Tip: check your console</p>
    <script src="https://d3dy5gmtp8yhk7.cloudfront.net/2.1/pusher.min.js"></script>
    <script>
        var pusher, channel;
        pusher = new Pusher('xxxxxxxxxxxxxxxxx');
        pusher.connection.bind('state_change', function(change){
            if(change.current === 'connected'){
                console.log('connected');
                channel = pusher.subscribe('test-channel');
                channel.bind('pusher:subscription_succeeded', function() {
                    console.log('subscribed');
                });
            }
        })
    </script>
</body>
</html>

これにより、次の結果が得られます。

connected
subscribed
Pusher : Error : {"type":"WebSocketError","error":{"type":"PusherError","data":{"code":null,"message":"Existing subscription to channel test-channel"}}}
4

2 に答える 2