小编woo*_*ers的帖子

Websockets 不适用于 Google App Engine

我最近向 Google App Engine 部署了一个 node.js 服务器应用程序,该应用程序通过 socket.io 与客户端应用程序进行通信。根据本文,App Engine 现在支持 websockets。

但是,客户端应用程序无法通过 wss 协议连接到服务器。我可以在浏览器控制台中看到以下错误消息。(我删除了我的服务器域)

WebSocket 连接到“wss://[我的服务器]/socket.io/?EIO=3&transport=websocket&sid=dbB2UgsCYhD7c1ucAAAA”失败:WebSocket 握手期间出错:意外响应代码:400

然后 Socket.io 回退到 https 长轮询,效果很好。

这是我用于部署到应用引擎的 app.yaml,其中 session_affinity 设置为 true 以进行长轮询。

runtime: nodejs10

instance_class: F2

handlers:
- url: /.*
  secure: always
  redirect_http_response_code: 301
  script: auto

network:
  session_affinity: true
Run Code Online (Sandbox Code Playgroud)

Socket.io 以一种直接的方式在服务器上使用:

this.server = this.app.listen(this.PORT, (err: any) => {
  io = socketio().listen(this.server);
  io.on("connection", (socket) => {
    console.log('A socket connection was made!');
  });
});
Run Code Online (Sandbox Code Playgroud)

我想知道如何让 websocket 连接在 App Engine 上工作?也许需要防火墙规则或其他配置更改?

google-app-engine websocket node.js socket.io

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

Bacpac vs dacpac用于将数据库迁移到Azure

我正在将一个大型数据库(包括架构和数据)从内部部署服务器部署到Azure SQL.我打算从命令行使用sqlpackage.exe.看起来有两种选择:

  1. 提取DACPAC,然后使用ExtractAllTableData选项将其发布到Azure,以在提取中包含数据
  2. 导出BACPAC,然后将其导入Azure

有首选吗?我需要这个过程以最快的方式运行,所以如果一个选项对性能更好,我会很好奇.

sql-server azure-sql-database

4
推荐指数
2
解决办法
3427
查看次数