概观
我在客户端(Android手机)和服务器(Windows Server)之间来回发送消息.通过TCP使用持久连接,哪种协议将是最佳解决方案.我正在考虑性能,可扩展性,消息大小和电池寿命.消息必须按顺序到达目的地,不能重复.
这似乎是更好的解决方案,但似乎很少有用户的大型实现示例.我不确定是否可以将其集成到Windows服务器中,或者是否必须是另一个应用程序或服务器正在运行.最后,似乎总体上缺乏有关它的信息.
这似乎有很多实现,例子,甚至一本书:).然而,主要目的似乎是即时通讯客户端和谷歌谈话之类的东西.这是服务器和客户端之间消息传递的最佳解决方案吗?我知道目前XMPP主要用于客户端到服务器到客户端架构.
如果我错了请纠正我,并提前感谢任何指导.
有没有办法在“导出”之后将自定义实例方法添加到猫鼬模式。
例如,如果我有一个架构:
module.exports = function(app, db, config) {
var MySchema = new Schema({ name: String });
MySchema.methods.doIt = function() { console.log("I DID IT!"); }
db.model("MySchema", MySchema);
}
Run Code Online (Sandbox Code Playgroud)
然后,我想在将新方法加载到 mongoose 模型对象后动态地向模式添加新方法。
MySchema = db.model('MySchema');
var obj = new MySchema({name: "robocop"});
var myNewMethod = function() { console.log(this.name); }
// Do Magic here to add the myNewMethod to object.
obj.myNewMethod();
Run Code Online (Sandbox Code Playgroud)
你有没有尝试过?
我已经尝试将它添加到 mongoose 模型对象,但是这会产生错误,指出模式对象没有我刚刚添加的方法。
MySchema = db.model('MySchema');
MySchema.schema.methods.myNewMethod = function() { console.log(this.name); }
db.model('MySchema', MySchema);
console.log(MySchema.schema.methods); // This shows my method …Run Code Online (Sandbox Code Playgroud) 我想,我在使用mongoosejs时遇到了麻烦.我试图保持一个特定大小为2的对象数组.当调用此函数时,它会向数组添加一个项目,并在必要时将其缩小.但是,当我保存数组时,大小不会减少到2.遵循代码和注释.感谢您的任何帮助,您可以提供.
user.location.push(req.body); //Add a new object to the array.
if(user.location.length > 2) //If the array is larger than 2
user.location.splice(0,1); //Remove the first item
console.log(user.location); //This outputs exactly what I would expect.
user.save(function(err, updatedUser){
if(err)
next(new Error('Could not save the updated user.'));
else {
res.send(updatedUser); //This outputs the array as if it was never spliced with a size greater than 2.
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Java来解析来自服务器的JSON响应.我的最终目标是将结果中的数据放入数组中.目前我正在使用它来尝试获得结果:
JSONArray jArray = myResponse.getJSONArray("results");
Run Code Online (Sandbox Code Playgroud)
此代码失败,因为它正在查找对象数组,而不是字符串数组:
org.json.JSONException: Value blah at 0 of type java.lang.String cannot be converted to JSONObject
Run Code Online (Sandbox Code Playgroud)
这是我服务器的JSON响应:
{
status: "OK",
results: [
"blah",
"bleh",
"blah"
]
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将"结果"值转换为数组?或者我应该编写自己的解析器.
谢谢
----------更新----------
看起来我的问题实际上发生在其他地方,而不是JSON属性"results"被转换为JSONArray的地方.
抱歉,感谢您的回答,他们帮助我意识到我在找错了地方.