与新的信号库建立连接

时间:2018-03-21 06:45:50

标签: javascript jquery kendo-grid asp.net-core-signalr

我使用以下代码连接到asp.net核心signalR服务器。但我无法建立联系。有什么我做错了吗?

我收到了这个错误,

  

错误:“promise”选项必须是Promise

var hubUrl = "http://localhost:52273/logNotifierHub";
var connection = new signalR.HubConnection(hubUrl );
var hub = connection.invoke("LogNotifierHub");
var hubStart = connection.start({ jsonp: true });

connection.on("streamStarted", function () {
    startStreaming();
});
var dataSource = new kendo.data.DataSource({
    type: "signalr",
    schema: {},
    transport: {
        signalr: {
            promise: hubStart,
            hub: hub,
            server: {read: "read"},
            client: {read: "read"}
        }
    }
});
$("#grid").kendoGrid({
    dataSource: dataSource,
    height: 850,
    columns: [],                    
});

2 个答案:

答案 0 :(得分:1)

SignalR promise对象的结构已更改,但您可以通过调整kendo插件来解决此问题。

<强> kendo.data.signalr.js

//if (typeof promise.done != 'function' || typeof promise.fail != 'function')
if (typeof promise.then != 'function')

...

//this.promise.done(function () {
//    hub.invoke.apply(hub, args).done(options.success).fail(options.error);
//});
this.promise.then(function() {
    hub.invoke.apply(hub, args).then(options.success);
});

答案 1 :(得分:0)

ASP.NET Core使用全新的SignalR版本,它仍处于alpha阶段。也就是说,Kendo组件不支持它。