サブスクライブ メソッドを 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"}}}