SignalR connection.on & connection.invoke
SignalR connection.on & connection.invoke
我有以下代码
var connection = new signalR
.HubConnectionBuilder()
.withUrl("/bidHub")
.build();
connection.start().then(res => {
connection.invoke("JoinGroup", auctionId)
.catch(err => console.log(err));
}).catch (function (err) {
return console.error(err.toString());
});
ajax call here
connection.on("RefreshBids", function (currentBid, lastBidder) {
document.getElementById("currentPrice").textContent = `$${currentBid}`;
document.getElementById("lastBidder").textContent = `${lastBidder}`;
});
connection.invoke("RefreshBids", JSON.stringify(currentBid), JSON.stringify(lastBidder)).catch(function (err) {
return console.error(err.toString());
});
event.preventDefault();
该代码同时适用于 'connection.on' 和 'connection.on' + 'connection.invoke',但是当它们都适用时,'connection.invoke' 会给出找不到 'currentBid' 和 'lastBidder',它仍然有效。它似乎适用于 'connection.on',但我是否也应该使用 'connection.invoke'
用法取决于您是否使用生成的代理。通常您会使用其中之一,但不会同时使用两者。有关详细信息,请参阅 generated proxy doc and calling server methods 文档。
我有以下代码
var connection = new signalR
.HubConnectionBuilder()
.withUrl("/bidHub")
.build();
connection.start().then(res => {
connection.invoke("JoinGroup", auctionId)
.catch(err => console.log(err));
}).catch (function (err) {
return console.error(err.toString());
});
ajax call here
connection.on("RefreshBids", function (currentBid, lastBidder) {
document.getElementById("currentPrice").textContent = `$${currentBid}`;
document.getElementById("lastBidder").textContent = `${lastBidder}`;
});
connection.invoke("RefreshBids", JSON.stringify(currentBid), JSON.stringify(lastBidder)).catch(function (err) {
return console.error(err.toString());
});
event.preventDefault();
该代码同时适用于 'connection.on' 和 'connection.on' + 'connection.invoke',但是当它们都适用时,'connection.invoke' 会给出找不到 'currentBid' 和 'lastBidder',它仍然有效。它似乎适用于 'connection.on',但我是否也应该使用 'connection.invoke'
用法取决于您是否使用生成的代理。通常您会使用其中之一,但不会同时使用两者。有关详细信息,请参阅 generated proxy doc and calling server methods 文档。