我有一个 signalR 服务器队列 hab。当在我的 SearchResultListItemView 视图中单击按钮时,我正在尝试启动服务器并向服务器发送消息。但无法工作,我收到错误“Uncaught TypeError: Cannot read property 'queue'”。
这是我的 SearchResultListItemView 视图,当点击事件发生时,我必须在其中调用 signalR 服务器。我只想在点击时向服务器发送一些价值。然后我将向所有其他客户端发送响应以加载更改。我怎样才能做到这一点?或者这里有什么问题?
window.SearchResultListItemView = Backbone.View.extend({
tagName: "tr",
initialize: function () {
var _this = this;
this.model.bind("change", this.render, this);
this.model.bind("destroy", this.close, this);
// here is the error occured in this line:
var queue = $.connection.queue;
// Start the connection
$.connection.hub.start(function () {
queue.ReloadQueueMember("Hello World!", "hi all");
});
},
events: {
"click a": "JoinQueue"
},
JoinQueue: function (e) {
e.preventDefault();
var name = this.model.get("QueueName");
var Id = this.model.get("CustomerId");
//SignalR Proxy created on the fly
queue.send(name, 'hannan19')
.done(function () {
console.log('Success!')
})
.fail(function (e) {
console.warn(e);
});
},
render: function () {
var data = this.model.toJSON();
_.extend(data, this.attributes);
$(this.el).html(this.template(data));
return this;
}
});
这是我的 SignalR 服务器:
public class Queue : Hub
{
public void Send(string QueueName, string UserName)
{
Clients.ReloadQueueMember(QueueName, UserName);
}
}