我正在努力如何websockets在颤振中实现自动重新连接。我使用web_socket_channel,但是,该插件只是包装了dart.io WebSocket,因此任何基于WebSocket类的解决方案也适用于我。
我已经想通了,如何捕获套接字断开连接,请参阅下面的代码片段:
try {
_channel = IOWebSocketChannel.connect(
wsUrl,
);
///
/// Start listening to new notifications / messages
///
_channel.stream.listen(
_onMessageFromServer,
onDone: () {
debugPrint('ws channel closed');
},
onError: (error) {
debugPrint('ws error $error');
},
);
} catch (e) {
///
/// General error handling
/// TODO handle connection failure
///
debugPrint('Connection exception $e');
}
Run Code Online (Sandbox Code Playgroud)
我想IOWebSocketChannel.connect从inside 调用onDone,但是,这会导致一种无限循环 - 因为我必须再次关闭_channel先前的调用connect,这又会onDone再次调用等等。
任何帮助将不胜感激!
我正在开发基于Sails JS后端和Web和Mobile前端的应用程序.我对前端框架的计划是:
关于上面的简要说明,我必须在应用程序中添加本地化功能.这就是我的问题出现 - 因为Sails JS和AngularJS都支持本地化,哪一个可以为我的项目提取?
从理论上讲,我可以:
如果有更多实践经验的人详细讨论该主题,我会很感激,考虑应用程序架构,并对可用选项的可能优缺点给出一些启示.
twitter-bootstrap angularjs cordova sails.js ionic-framework
假设我在一个快递申请中需要两本不同的护照(例如用户和房间).所以我定义了两个独立的变量:
var passport = require('passport');
var roomPassport = require('passport');
Run Code Online (Sandbox Code Playgroud)
然后,我用不同的护照策略初始化它们:
require('./config/passport')(passport); // pass passport for configuration
require('./config/roompassport')(roomPassport); // pass passport for configuration
Run Code Online (Sandbox Code Playgroud)
最后一步是将它们设置为Express中间件:
// required for passport
application.use(session({ secret: 'ilovepassport;-)' })); // session secret
application.use(passport.initialize({ userProperty: "user" }));
application.use(passport.session()); // persistent login sessions
application.use(roomPassport.initialize({ userProperty: "room" }));
application.use(roomPassport.session()); // persistent login sessions
application.use(flash()); // use connect-flash for flash messages stored in session`
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,实际上roomPassport会覆盖护照而不是有两个对象 - req.user和req.room,我只有一个req.room但是用用户数据初始化了.
需要提及的是每个护照(用户或室)可以彼此,即独立认证有这样一个场景,两个对象是重要req.user和req.room必须存在.
怎么解决这个?
编辑1
好吧,经过几个小时后,似乎虽然我必须分开护照对象,但是在打电话之后application.use(roomPassport.initialize({ userProperty: "room" }));,事情会变得混乱 - 这是因为 …
我的问题与PassportJS有关- 在Express应用程序主题中使用多个护照.因此,只要我已经拥有两个单独的护照实例,我意识到它们都共享相同的cookie,在此处创建:
application.use(session({ secret: 'my secret cookie', key: 'usid' }));
Run Code Online (Sandbox Code Playgroud)
我可以用这个添加一个不同名称的cookie:
app.use(connect.session({ secret: 'keyboard cat', key: 'rsid' }))
Run Code Online (Sandbox Code Playgroud)
但是,我不清楚如何指示每张护照使用自己的cookie.
我刚刚创建了我的第一个 flutter 包。它只有 dart 代码,因此非常基础。但是,我在包中使用了一个外部依赖项来提供程序包。由于我不使用包外部的任何提供程序类,因此我的理解是,我不需要provider向应用程序添加包依赖项,因此我可能仅将依赖项保留在我的包内。但是,当我尝试编译该应用程序时,出现以下错误:
Error: Could not resolve the package 'provider' in 'package:provider/provider.dart'.
file:///local_path/lib/scale_widget.dart:5:8: Error: Not found: 'package:provider/provider.dart'
import 'package:provider/provider.dart';
Run Code Online (Sandbox Code Playgroud)
尽管如此,该provider包还是导入到我的包中。如果我provider向我的应用程序添加依赖项,则一切都会编译。
我指的是这个Time to live in mongodb, mongoose don't work。文档没有被删除来问我的问题:是否可以动态设置 MongoDB 的 TTL 时间?因此,假设您有令牌集合,并且希望将其用于不同的目的。在这种情况下,每次创建令牌时,最好为每个令牌设置特定的 TTL。如果可能的话,您能提供一些代码片段吗?
我有一个简单的PopupMenuButton实现appTitle。这里是:
PopupMenuItem<int> _buildMenuItem(int size) {
return PopupMenuItem<int>(
value: size,
child: Text('${size}x$size'),
);
}
return Scaffold(
appBar: AppBar(
title: Text('Some title'),
actions: <Widget>[
PopupMenuButton<int>(
icon: Icon(Icons.refresh),
onSelected: _canReplay()
? (int size) {
// do something with the size
}
: null,
itemBuilder: (BuildContext context) => <PopupMenuItem<int>>[
_buildMenuItem(3),
_buildMenuItem(4),
_buildMenuItem(5),
],
),
],
),
body: ...
);
Run Code Online (Sandbox Code Playgroud)
更新 - 我意识到我最初的问题可能不太清楚,所以我在下面重新表述:
我想实现的是PopupMenuButton根据应用程序条件禁用。使用上面的代码,我可以启用/禁用onSelected方法调用,但是图标外观不会改变。
总结一下 - 我希望整个及其图标以与您传递给其方法PopupMenuButton相同的方式被禁用。这样,用户甚至无法按下按钮并调用菜单。IconButtonnullonPressed
这可以实现吗?
我正在查看charts_flutter包。我需要实现一个仪表图,在仪表的中心有一个单段和它的标签值。请参阅下面的模型文件,其中将所需类型的三个图表放在一行中:
使用 Google 图表仪表示例,我能够实现所需的仪表,但是,我正在努力根据要求设置标签。以下是我用于仪表的课程,任何有关如何添加标签的帮助/提示将不胜感激:
/// Gauge chart example, where the data does not cover a full revolution in the
/// chart.
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:flutter/material.dart';
import 'dart:math';
class GaugeChart extends StatelessWidget {
final List<charts.Series> seriesList;
final bool animate;
GaugeChart(this.seriesList, {this.animate});
factory GaugeChart.fromValue(
{@required double value, @required Color color, bool animate}) {
return GaugeChart(
_createDataFromValue(value, color),
// Disable animations for image tests.
animate: animate,
);
}
@override
Widget build(BuildContext context) {
return charts.PieChart(
seriesList,
animate: animate,
// …Run Code Online (Sandbox Code Playgroud) 这是我的用例:
我有两个不同的Observables:
Observable<MobileAdEvent> adEventStream;
Observable<Color> colorStream;
Run Code Online (Sandbox Code Playgroud)
当这两者中的任何一个发出事件时,我需要收到通知。zipWith对我不起作用,因为它会等到两个流都有要发出的事件。mergeWith似乎也不起作用,因为它希望两个流都来自同一类型。任何提示将不胜感激,谢谢。
已经评论过: 如何将SailsJS和SailsJS 的phonegap移动应用程序制作为Phonegap?,但没有找到真正的答案。我想实现一个项目,其中后端是SailsJS,前端是:1)Web客户端;2)PhoneGap客户端;
我看了看https://github.com/coderaven/sails-docs/blob/master/What-Is-Sails.md,其中提到了PhoneGap / Cordova的用法,但是,再一次-没有提供真实的示例。
因此,如果有人可以共享包括Sails和PhoneGap / Cordova的示例示例,或者至少共享一些示例代码,我将不胜感激。
我想结合ScriptableObject使用UnityEventGenericObject 。我的最终目标是创建通用事件和侦听器,然后使用 ScriptableObject 创建特定事件,例如 GameObject、int 等,并使用相应的侦听器处理这些事件。这是我到目前为止的代码:
EventTemplate.cs
using System.Collections.Generic;
using UnityEngine;
public class EventTemplate<T> : ScriptableObject {
private List<ListenerTemplate<T>> listeners = new List<ListenerTemplate<T>>();
public void Raise(T go) {
for (int i = listeners.Count - 1; i >= 0; i--) {
listeners[i].OnEventRaised(go);
}
}
public void RegisterListener(ListenerTemplate<T> listener) {
listeners.Add(listener);
}
public void UnregisterListener(ListenerTemplate<T> listener) {
listeners.Remove(listener);
}
}
Run Code Online (Sandbox Code Playgroud)
ListenerTemplate.cs
using UnityEngine;
using UnityEngine.Events;
[System.Serializable]
public class ResponseEvent<T> : UnityEvent<T> { }
public class ListenerTemplate<T> : MonoBehaviour …Run Code Online (Sandbox Code Playgroud)