transport.signalrObject
The configuration used when type
is set to "signalr"
. Configures the SignalR settings - hub, connection promise, server, and client hub methods.
A live demo is available at demos.telerik.com/kendo-ui.
It is recommended to get familiar with the SignalR JavaScript API and ASP.NET Core SignalR.
Example
<script>
$.when(
$.getScript("https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/8.0.7/signalr.min.js"),
).done(function () {
var hubUrl = "https://demos.telerik.com/service/v2/signalr/products";
var hub = new signalR.HubConnectionBuilder()
.withUrl(hubUrl,{
skipNegotiation: true,
transport: signalR.HttpTransportType.WebSockets
})
.build();
var hubStart = hub.start()
.then(function (e) {
console.log("SignalR Hub Started!");
})
.catch(function (err) {
return console.error(err.toString());
});
var dataSource = new kendo.data.DataSource({
type: "signalr",
schema: {
model: {
id: "ID",
fields: {
ID: { editable: false, nullable: true },
CreatedAt: { type: "date" },
UnitPrice: { type: "number" },
},
},
},
transport: {
signalr: {
promise: hubStart,
hub: hub,
server: {
read: "read",
update: "update",
destroy: "destroy",
create: "create",
},
client: {
read: "read",
update: "update",
destroy: "destroy",
create: "create",
},
},
},
});
dataSource.fetch(function () {
/* The result can be observed in the DevTools(F12) console of the browser. */
console.log(dataSource.data());
});
});
</script>
transport.signalr.clientObject
Specifies the client-side CRUD methods of the SignalR hub.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
create: "itemCreated",
destroy: "itemDestroyed",
read: "itemRead",
update: "itemUpdated"
},
server: {
create: "createItem",
destroy: "destroyItem",
read: "readItems",
update: "updateItem"
}
}
}
});
</script>
transport.signalr.client.createString
Specifies the name of the client-side method of the SignalR hub responsible for creating data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
create: "itemCreated"
},
server: {
create: "createItem"
}
}
}
});
// Listen for created items from server
connection.on("itemCreated", function(item) {
console.log("Item created:", item);
});
</script>
transport.signalr.client.destroyString
Specifies the name of the client-side method of the SignalR hub responsible for destroying data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
destroy: "itemDeleted"
},
server: {
destroy: "deleteItem"
}
}
}
});
// Listen for deleted items from server
connection.on("itemDeleted", function(item) {
console.log("Item deleted:", item);
});
</script>
transport.signalr.client.readString
Specifies the name of the client-side method of the SignalR hub responsible for reading data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
read: "dataRead"
},
server: {
read: "getData"
}
}
}
});
// Listen for data from server
connection.on("dataRead", function(data) {
console.log("Data received:", data);
});
</script>
transport.signalr.client.updateString
Specifies the name of the client-side method of the SignalR hub responsible for updating data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
update: "itemUpdated"
},
server: {
update: "updateItem"
}
}
}
});
// Listen for updated items from server
connection.on("itemUpdated", function(item) {
console.log("Item updated:", item);
});
</script>
transport.signalr.hubObject
The SignalR hub object returned by the createHubProxy
method (or signalR.HubConnection
for ASP.NET Core SignalR). The hub
option is mandatory.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
read: "dataReceived"
},
server: {
read: "getData"
}
}
}
});
</script>
transport.signalr.promiseObject
The promise returned by the start
method of the SignalR connection. The promise
option is mandatory.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var connectionPromise = connection.start();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connectionPromise,
hub: connection,
client: {
read: "dataReceived"
},
server: {
read: "getData"
}
}
}
});
connectionPromise.then(function() {
console.log("SignalR connection established");
});
</script>
transport.signalr.serverObject
Specifies the server-side CRUD methods of the SignalR hub.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
create: "itemCreated",
destroy: "itemDeleted",
read: "dataReceived",
update: "itemUpdated"
},
server: {
create: "CreateItem",
destroy: "DeleteItem",
read: "GetData",
update: "UpdateItem"
}
}
}
});
</script>
transport.signalr.server.createString
Specifies the name of the server-side method of the SignalR hub responsible for creating data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
create: "itemCreated"
},
server: {
create: "CreateItem"
}
}
}
});
// When a new item is added, it will call the CreateItem method on the server
dataSource.add({ name: "New Item", value: 100 });
</script>
transport.signalr.server.destroyString
Specifies the name of the server-side method of the SignalR hub responsible for destroying data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
destroy: "itemDeleted"
},
server: {
destroy: "DeleteItem"
}
}
}
});
// When an item is removed, it will call the DeleteItem method on the server
var item = dataSource.get(1);
if (item) {
dataSource.remove(item);
}
</script>
transport.signalr.server.readString
Specifies the name of the server-side method of the SignalR hub responsible for reading data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
read: "dataReceived"
},
server: {
read: "GetData"
}
}
}
});
// When dataSource.read() is called, it will invoke the GetData method on the server
dataSource.read();
</script>
transport.signalr.server.updateString
Specifies the name of the server-side method of the SignalR hub responsible for updating data items.
Example
<script>
var connection = new signalR.HubConnectionBuilder()
.withUrl("/dataHub")
.build();
var dataSource = new kendo.data.DataSource({
transport: {
signalr: {
promise: connection.start(),
hub: connection,
client: {
update: "itemUpdated"
},
server: {
update: "UpdateItem"
}
}
}
});
// When an item is modified and sync() is called, it will call UpdateItem on the server
var item = dataSource.get(1);
if (item) {
item.set("name", "Updated Name");
dataSource.sync();
}
</script>