因此,我希望建立一个允许视频,音频和文本的聊天应用程序.我花了一些时间研究Websockets和WebRTC来决定使用哪个.由于WebRTC有很多视频和音频应用程序,这听起来是一个合理的选择,但还有其他我应该考虑的事情吗?随意分享您的想法.
像:
由于新的WebRTC仅在某些浏览器上可用,而websockets似乎在更多的浏览器中.
可伸缩性 - Websockets使用服务器进行会话,而WebRTC似乎是p2p
多路复用/多个聊天室 - 用于Google+环聊,我仍然可以查看有关如何实施的演示应用
服务器 - Websockets需要RedisSessionStore或RabbitMQ来扩展多台计算机
编辑:改述我的问题和标题
因此,如果您从标题中可以看出我正在使用Phonegap/Cordova并尝试将WebRTC添加到HTML/JS/CSS应用程序中.完美适用于桌面浏览器,但不适用于移动设备.
我问这个问题的原因是因为我在手机上看过视频聊天应用程序(oovoo/skype),但浏览器中没有聊天应用程序.虽然我知道webrtc不适用于IOS,但确实适用于较新版本的Chrome.
但是,如果我将我的应用程序包装在Cordova/Phonegap webview中并将其作为应用程序分发,是否可以运行WebRTC?因为如果我可以使用PhoneGap访问相机或accelorometer等本机组件,为什么我不能使用HTML/JS/CSS应用程序进行视频聊天?
有没人试过这个?
TIA.
我目前正在使用Neo4j 2.0+和cypher创建和保存会话。
我的项目有时需要每秒对标记为'ChildSession'的节点进行多次写入,并且我注意到当我在cypher中“递增” ChildSession_ID时,我经常会有ChildSession_ID的跳过数字或相同数字。
不知道neo4j / cypher是否太慢以满足我的要求,但是我怀疑这是因为内部Neo4j Node ID正常增加了。
The cypher command i'm using, to increment ChildSession is:
match (p:ChildSession) with count(p) as Total
Create (b:ChildSession{ChildSession_ID:Total + 1 })
Run Code Online (Sandbox Code Playgroud)
人们希望ChildSession_ID会增加,但是当我在neo4j浏览器中检查节点时,我得到以下结果:
match (u:ChildSession) return u,ID(u)
Results:
ChildSession_ID 1
44997
ChildSession_ID 1
44998
ChildSession_ID 1
44999
ChildSession_ID 4
45000
ChildSession_ID 5
45001
ChildSession_ID 6
45002
ChildSession_ID 6
45003
ChildSession_ID 8
45004
ChildSession_ID 8
45005
Run Code Online (Sandbox Code Playgroud)
我一直无法使neo4j准确增加。我尝试使用redis及其递增的hincrby命令,然后将此变量放入密码查询的ChildSession_ID属性。此方法有效,但我宁愿使用cypher代替。
可以使参数仅使用redis来进行快速写入,但是我使用会话级别的层次结构,并且需要对neo4j提供的查询。
谢谢。
您好我想尝试使用'WHERE AND'来匹配neo4j关系
我的示例relationiship是:'用户访问国家'
我这样创造它......
MATCH (c:Country{Name:Country}) MERGE (u:User{Email:Email,UserID: UserID}) MERGE (u)-[r:Visits]->(c)
//Countries are previously created and Users may or may not exist
Run Code Online (Sandbox Code Playgroud)
然后我查询(This Works):
MATCH (u:User)-[r:Visits]->(c:Country) where c.Name='France' or c.Name='Spain' return u
Run Code Online (Sandbox Code Playgroud)
结果:向我显示访问过西班牙或法国的所有用户,即使他们只访问过两个国家/地区之一.
但我想要做的是完全相同的查询,但使用'AND'代替'OR'.我可以让用户访问"法国"和"西班牙".
MATCH (u:User)-[r:Visits]->(c:Country) where c.Name='France' AND c.Name='Spain' return u
Run Code Online (Sandbox Code Playgroud)
结果:找到0个节点和关系..
我能做什么?
如何在我的应用程序中保护我的快速"GET"路由,以便电子邮件和用户数据不会暴露给未经授权的客户端.我想知道,我应该像密码那样散列所有字段吗?
我的GET"/ users"路由发送这样的JSON ..
{
"name": "keven",
"email": "keveng@gmail.com",
"user": "keven",
"password": "EEOnGFritH1631671dc8da7431399f824b3925a49e",
"country": "America",
"date": "April 20th 2013, 10:34:22 pm",
"_id": "5173502e5g52676c1b000001"
}
Run Code Online (Sandbox Code Playgroud)
在我的主干和节点/快递应用程序中,我在我的主干集合中有一个URL,就像这样..
Users = Backbone.Collection.extend({
model: User,
url: '/users',
});
Run Code Online (Sandbox Code Playgroud)
快递路线是这样的:
app.get('/users', function(req, res){
User.find({}, function (err, accounts) {
res.send(accounts);
});
});
Run Code Online (Sandbox Code Playgroud)
谢谢.
cypher ×2
neo4j ×2
node.js ×2
webrtc ×2
backbone.js ×1
cordova ×1
express ×1
javascript ×1
rest ×1
websocket ×1