当前位置: 首页 > 知识库问答 >
问题:

Google云应用程序引擎flex env上的Flask Socketio服务器

卢子民
2023-03-14

我想在应用引擎上部署一个烧瓶ocketio服务器。这是服务器的导入和运行:

from typing import List
from flask_socketio import SocketIO, join_room, leave_room, send, emit
from flask import Flask, render_template, request, session, url_for
import sys
import numpy as np
import random
import re
import itertools

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret-key'
socketio = SocketIO(app, cors_allowed_origins="*")

...

if __name__ == '__main__':
    socketio.run(app, port='8080', debug=True)

这是我的应用程序。yaml:

runtime: python
env: flex
service: server

entrypoint: python3 main.py

runtime_config:
    python_version: 3

automatic_scaling:
    min_num_instances: 1
    max_num_instances: 2

我使用angular作为客户机,它与以下线路相连:

this.socket = io('https://my-server-url.appspot.com');

当我尝试运行angular应用程序时,它会说

Access to XMLHttpRequest at 'https://server-url.appspot.com/socket.io/?EIO=3&transport=polling&t=NJu9Zq7' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我还尝试将cors\u allowed\u origins选项设置为[],但也没有成功。我还尝试将session affinity设置为true,但也没有成功。

请求的资源上存在标头。

我没有在另一个选项卡中打开服务器url,我希望服务器在后台运行。

你能帮忙吗?谢谢

共有1个答案

孔和畅
2023-03-14

修复了它。我将session\u affinity设置为true,然后将入口点更改为:

entrypoint: gunicorn -b :8080 -k eventlet main:app

应用引擎仅适用于8080端口。

 类似资料:
  • 有人知道我们如何使用超过12个并发连接从App Engine到Cloud SQL吗? 我们发现留档说:“在标准环境中运行的每个App Engine实例与Google CloudSQL实例的并发连接不能超过12个。” 我们正在使用 Java for App Engine 使用 Hibernate...连接池指出它不应该在生产环境中使用,但如果我们禁用池,我们将达到最大连接数。

  • 我想避免使用WebViews从Google获取OAuth代币。(要求用户分享他的联系人、个人资料信息等)。为此我使用了Google Play服务API。 由于我的应用程序是基于云的(逻辑发生在云中),我必须将这些令牌保存在云中。我还必须让用户从多个设备登录(每次从新设备登录时都不需要向他询问谷歌权限) 我试图实现这个谷歌博客中提到的技术。 我尝试了博客中提到的方法。它并没有完全如我所愿工作。我还检

  • 我正在将一个非常基本的web应用程序部署到Google应用程序引擎。我使用的是Springboot,我可以在本地很好地运行应用程序,但当我部署到Google时,应用程序引擎不会启动实例。我在启动时配置了一个云SQL数据源。 我有云sql配置属性配置src/main/Resources/application.properties.App Engine似乎找不到这些属性,所以它无法正确设置Cloud

  • 是否有针对Google App Engine(Java base)的报告指南?Jasper Report是否符合GAE?

  • 在python上的GoogleAppEngine中,我遇到了以下错误:在服务了总共2个请求后,超过了128 MB的软私有内存限制,达到了157 MB。我尝试使用以下命令来解决这个问题。上下文=ndb。获取上下文()和上下文。设置缓存策略(False)。我把这个方法放在appengine\u配置中。py,也在应该处理请求的处理程序中。我想知道是否还有其他地方可以放置这个命令,或者我是否应该总共使用一

  • 我正试图在Google App Engine上从Quarkus连接到PostgreSQL数据库。为此,必须提供额外的JDBC属性“socketFactory”和“cloudSqlInstance”。但我不知道如何在应用程序中指定这些。属性。 根据https://quarkus.io/guides/datasource,有一个属性quarkus.datasource.jdbc.additional。