小编sou*_*rop的帖子

禁用Google Services Gradle插件以获得特定风格

使用Google服务需要使用此Gradle插件:

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

这个线程的摇篮论坛有使我得出这样的结论,你不能有选择地启用或禁用插件,也就是说,是不是一种选择.我已经尝试了一些旧线程提供的解决方案,涉及apply plugin声明周围的条件,现在没有一个工作.

插件本身由google-services.jsonGoogle生成并配置到项目目录中.我知道,你可以通过让有需要针对每种口味不同配置多个google-services.json文件,但什么是我们意味着,我们明确要构建口味做使用谷歌服务(如针对没有安装播放服务的设备) ?空白文件或虚拟JSON文件不起作用,因为插件将拒绝接受它.

因此,我能想到的唯一解决方案是每次我想测试/构建我的味道时手动禁用插件(注释掉该行).当然必须有一个更好的方法来控制插件的工作方式?

android google-play-services gradle-plugin

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

从 APScheduler 作业发送 python-socket.io 消息导致客户端挂起

我在应用程序中使用 APScheduler 来安排作业,并使用 python-socket.io 与浏览器客户端通信以通知其正在执行的作业。但是,我发现 socket.io 客户端(常规 JavaScript 客户端)不接受从计划作业发送的事件。

下面是一些部分代码。

# scheduler.py

sched = BackgroundScheduler() # with proper configuration and stuff
sched.start()

(...)

def add_job(method, param, time):
    start_time = datetime.now() + timedelta(seconds=time)
    trigger = DateTrigger(run_date=start_time)
    return sched.add_job(method, trigger=trigger, args=[param])

(...)
Run Code Online (Sandbox Code Playgroud)

在另一个脚本中,我这样称呼它:

# otherscript.py

import scheduler

(...)

def terminate(name):
    # Do some stuff
    sio.emit('ended', name)

def schedule_kill(name, time_offset):
    # Do some stuff
    scheduler.add_job(terminate, name, time_offset)

(...)
Run Code Online (Sandbox Code Playgroud)

terminate()是一个方法,它执行一些操作,然后调用python-socket.io以发出一条消息,表示它已结束。

socket.io 服务器在其他地方配置,功能完善,并导入为sio. 我可以很好地发送消息,除非我尝试通过已安排为作业的方法来发送消息。

python-engine.io似乎从日志中发送消息,但在客户端,不仅从未收到消息,而且客户端继续超时。这仅在它从计划作业接收到消息后发生,与之前一样,我仍然能够成功发送消息(通过常规方法调用)。

服务器日志:

[17:24:39] socketio  : …
Run Code Online (Sandbox Code Playgroud)

python socket.io apscheduler

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

检查Express请求数据是否为数组

我正在使用Express 3.x API服务器(不要问为什么我不升级到4.x;我无法控制它),并且我正在尝试实现对批量请求的支持一个特定的端点。端点当前支持常规请求(采用JSON对象),但我希望它也能够采用JSON对象数组,例如:

POST /api/posts
Body:
[
  { "title": "Hello World", "text": "blah blah" },
  { "title": "Hello World 2", "text": "blah blah blah" }
]
Run Code Online (Sandbox Code Playgroud)

当我尝试使用访问单个请求的请求正文时req.body,我可以很好地检索数据(它只是一个常规的JSON对象)。但是,当我发送数组时,我发现数据被解析为objects(?)的对象而不是数组。

req.body = { "title": "Hello World", "text": "blah blah" };
typeof req.body;
// object
req.body.toString();
// [object Object]

req.body = [
  { "title": "Hello World", "text": "blah blah" },
  { "title": "Hello World 2", "text": "blah blah blah" }
];
typeof req.body;
// object
req.body.toString();
// [object Object],[object Object]
Run Code Online (Sandbox Code Playgroud)

我尝试使用像这样的简单检查:

if …
Run Code Online (Sandbox Code Playgroud)

arrays json node.js express body-parser

4
推荐指数
1
解决办法
1964
查看次数