Reputation: 11
I am using pusher_channels_flutter package to get real time notifications. I want to use Presence Channel for Pusher in flutter, below:
await pusher.subscribe(` `
channelName: "presence-chat",
onEvent: (event) {
print('Presence chat: $jsonDecode($event)');
},
onMemberAdded: (member) {
print("Member added: $member");
},
onMemberRemoved: (member) {
print("Member removed: $member");
}
);
But I got this error: onSubscriptionError: Invalid response from ChannelAuthorizer: no user_id key in channel_data object: null Exception: com.pusher.client.AuthorizationFailureException: Invalid response from ChannelAuthorizer: no user_id key in channel_data object: null
What should I do?
I did connected to pusher blow:
await pusher.init(
apiKey: '914d89e41a8078c7650e',
cluster: 'ap1',
onConnectionStateChange: onConnectionStateChange,
onError: onError,
onSubscriptionSucceeded: onSubscriptionSucceeded,
onEvent: onEvent,
onSubscriptionError: onSubscriptionError,
onDecryptionFailure: onDecryptionFailure,
onMemberAdded: onMemberAdded,
onMemberRemoved: onMemberRemoved,
onSubscriptionCount: onSubscriptionCount,
onAuthorizer: (channelName, socketId, options) => onAuthorizer(channelName, socketId, options),
);
void onConnectionStateChange(dynamic currentState, dynamic previousState) {
log("Connection: $currentState");
}
void onError(String message, int? code, dynamic e) {
log("onError: $message code: $code exception: $e");
}
void onEvent(PusherEvent event) {
log("onEvent: $event");
}
void onSubscriptionSucceeded(String channelName, dynamic data) {
log("onSubscriptionSucceeded: $channelName data: $data");
final me = pusher.getChannel(channelName)?.me;
log("Me: $me");
}
void onSubscriptionError(String message, dynamic e) {
log("onSubscriptionError: $message Exception: $e");
}
void onDecryptionFailure(String event, String reason) {
log("onDecryptionFailure: $event reason: $reason");
}
void onMemberAdded(String channelName, PusherMember member) {
log("onMemberAdded: $channelName user: $member");
}
void onMemberRemoved(String channelName, PusherMember member) {
log("onMemberRemoved: $channelName user: $member");
}
void onSubscriptionCount(String channelName, int subscriptionCount) {
log("onSubscriptionCount: $channelName subscriptionCount: $subscriptionCount");
}
What I should put in values of onAuthorizer map for channel_data?
Upvotes: 1
Views: 103