小编zol*_*y13的帖子

网络推送协议如何工作?

问题

我想知道webpush协议是如何工作的?WebSocket它是否像协议一样保持某种连接的打开状态?或者它使用类似的机制polling

尝试过

根据文档WebPush 使用 HTTP 2.0 服务器推送:

描述了用于向用户代理传送实时事件的简单协议。该方案使用HTTP/2服务器推送。

服务器推送维基百科

HTTP/2 Server Push 不是一种从服务器到客户端的通知机制。相反,当客户端可能以其他方式生成获取资源的请求时,客户端会使用推送的资源;

HTTP/2 服务器推送示例场景:

考虑一个包含三个资源的网站:index.html、styles.css 和 script.js。当用户通过浏览器连接到该网站的主页时,他们会自动检索index.html。当浏览器解析 index.html 中的 HTML 文本时,它会找到需要 styles.css 和 script.js 的指令。此时,浏览器将发出请求以获取另外两个文件。

通过 HTTP/2 Push,服务器可以采取主动,制定规则,甚至在请求内容之前就触发内容发送。在这个示例场景中,服务器知道任何请求index.html的人都需要styles.css和script.js,因此它可以立即将它们推送到客户端,而无需等待客户端请求它们。

根据 HTTP/2 服务器推送,WebPush 协议似乎应该在客户端请求之前返回某种通知。但我对此并不确定。所以这是我的问题:它到底是如何工作的?

server-push http2 web-push

8
推荐指数
0
解决办法
2371
查看次数

执行迁移EF core 2.0时出错,将Identity id从string更改为int

场景:

我从同事那里收到了ASP.NET CORE中的自动生成项目.帐户/管理服务有自动生成的代码.此代码包括ApplicationUser Class,DBContext和迁移文件夹,其中包含00000000000000_CreateIdentitySchema.cs和20180323155805_Snapshot.cs.我一直在尝试将我的User类更改为具有整数id.为此,我在IdentityUser中添加了泛型:

public class ApplicationUser : IdentityUser**<int>**
{
}
Run Code Online (Sandbox Code Playgroud)

我还必须创建ApplicationRole类,因为它在迁移文件中创建之前.

public class ApplicationRole : IdentityRole<int>
{
}
Run Code Online (Sandbox Code Playgroud)

我也改变了我的背景:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, 
    **ApplicationRole, int**>
Run Code Online (Sandbox Code Playgroud)

在迁移文件中,创建了登录方案.添加更改后,我添加了新的迁移.在添加迁移期间,我收到此错误:

要更改列的IDENTITY属性,需要删除并重新创建列.

migration identity ef-migrations entity-framework-core asp.net-core-mvc

7
推荐指数
1
解决办法
3445
查看次数

如何使用托管标识为逻辑应用程序创建与 Azure KeyVault 的 Api 连接

设想

您好,我想创建Logic App一个从Azure KeyVault保管库获取秘密并向 API 发送经过身份验证的请求的方法。

问题

我收到:The workflow connection parameter 'keyvault' is not valid. The API connection 'keyvault' is not configured to support managed identity.在 ARM 部署期间。如何Microsoft.Web/Connections使用 ARM 模板中的托管身份进行创建。文档中没有有关它的信息:apiConnectionlogicapp -MSI

重现

{
  "type": "Microsoft.Web/connections",
  "apiVersion": "2016-06-01",
  "name": "[variables('KeyVault_Connection_Name')]",
  "location": "[variables('location')]",
  "kind": "V1",
  "properties": {
    "api": {
      "id": "[concat('/subscriptions/', variables('subscriptionId'), '/providers/Microsoft.Web/locations/', variables('location'), '/managedApis/', 'keyvault')]"
    },
    "parameterValues": {
      "vaultName": "[variables('keyVaultName')]"
    },
    "displayName": "[variables('KeyVault_Display_Connection_Name')]"
  }
},
{
  "type": "Microsoft.Logic/workflows",
  "apiVersion": "2017-07-01",
  "name": "[variables('logicAppName')]", …
Run Code Online (Sandbox Code Playgroud)

azure-resource-manager azure-logic-apps azure-keyvault azure-managed-identity

6
推荐指数
2
解决办法
5648
查看次数

Azure CLI:无法在 Windows PowerShell 中转义管道字符 (|)

设想

我尝试在 Windows 计算机上使用 Azure CLI 创建 Azure Web 应用程序。不幸的是,我无法为我的网络应用程序选择运行时。当我尝试: 时az webapp create -n name -g grop -p plan -r "DOTNETCORE|3.1",出现错误:

'3.1' is not recognized as an internal or external command,
Run Code Online (Sandbox Code Playgroud)

可运行的程序或批处理文件。

我试图用反斜杠转义管道,\但它没有帮助

powershell azure azure-cli

5
推荐指数
1
解决办法
1165
查看次数

为什么“i”是未声明的标识符?(c++)

`代码错误的图像

我可以将“i”用于课程,但不能用于成绩。我查看了其他示例,它们也做同样的事情,允许“i”出现在成绩部分。

#include <iostream>

using namespace std;

int main() {
  float course1;
  float grade1;
  float totalhour =0;
  float points;
  float totalpoints =0;
  for(int i = 1; i <=4; ++i)
  cout << "Course " << i << "hours" ;
  cin >> course1;

  cout << "Grade for course " << i << endl;
  cin >> grade1;
}
Run Code Online (Sandbox Code Playgroud)

错误:使用未声明的标识符 'i' cout << "Grade for course" << i << endl; ^

c++

-1
推荐指数
1
解决办法
75
查看次数