在我的pusherTrigger方法上获取Uncaught TypeError: undefined is not a function
这是一个简单的消息传递系统,其中一个用户向另一个用户发送消息,接收者应该收到消息通知。我有一个compose_message
操作,可以将消息推送到频道private-incomingMessages
。
export default Ember.ObjectController.extend(window.EmberPusher.Bindings, window.EmberPusher.ClientEvents, {
content: {},
logPusherEvents: true,
PUSHER_SUBSCRIPTIONS: {'messageChannel': ['client-compose-message'],
'incomingMessages': ['client-user-messages']},
actions: {
compose_message: function(){
var self = this, content = this.get('messageContent');
self.get('pusher.connection').pusherTrigger('incomingMessages', 'client-user-messages', {'message': content}); //not registering pusherTrigger as a method
},
clientUserMessages: function(){
console.log("client user messages is working!");
}
});
如果您需要更多信息,请与我们联系。如果可以,请帮忙!
答案 0 :(得分:0)
抱歉,您的问题是什么?您的后端没有身份验证路径。
答案 1 :(得分:0)
您只能在private channels上触发客户端事件,因此您需要使用私有渠道(我看到您拥有这些渠道,然后将其删除)。请参阅Pusher client event docs。
因此,您需要authenticate your private channel,因此您需要/pusher/auth
端点。
为了创建private-
频道名称,EmberPusher文档建议您在控制器init
函数中构建订阅哈希。
Ember.ObjectController.extend(window.EmberPusher.Bindings, window.EmberPusher.ClientEvents, {
init: {
// build subscription hash here
},
...
});
根据EmberPusher docs,您需要camelise
个活动名称,因此我认为compose_message
应为clientComposeMessage
。
最后,调用pusherTrigger
的代码看起来不正确。 EmberPusher文档显示:
this.pusherTrigger(this.get('channelName'), eventName, this.get('data'));
在您的示例中,看起来在连接对象上调用了pusherTrigger
。