要實現庫存更新與購物車同步,可以使用SignalR來實現實時通信。以下是一個簡單的示例:
public class InventoryHub : Hub
{
// 更新庫存信息
public void UpdateInventory(int productId, int quantity)
{
// 更新數據庫中的庫存信息
// 向所有客戶端發送更新的庫存信息
Clients.All.SendAsync("UpdateInventory", productId, quantity);
}
}
const connection = new signalR.HubConnectionBuilder()
.withUrl("/inventoryHub")
.build();
connection.start().then(() => {
console.log("Connected to InventoryHub");
connection.on("UpdateInventory", (productId, quantity) => {
// 更新購物車信息
console.log(`Product ${productId} inventory updated to ${quantity}`);
});
}).catch(err => console.error(err));
// 增加商品數量
function addToCart(productId) {
// 更新庫存數量
connection.invoke("UpdateInventory", productId, -1)
.catch(err => console.error(err));
}
// 減少商品數量
function removeFromCart(productId) {
// 更新庫存數量
connection.invoke("UpdateInventory", productId, 1)
.catch(err => console.error(err));
}
通過以上步驟,就可以實現庫存更新與購物車同步的功能。當用戶修改購物車中商品數量時,庫存信息會實時更新,確保購物車中的商品數量與庫存信息保持同步。