标签: cometd

Python Comet Server

我正在构建一个具有实时源的Web应用程序(类似于Facebook的新闻源),我希望通过长轮询机制进行更新.我理解使用Python,我的选择几乎要么使用Stackless(从他们的Comet wsgi示例构建)或Cometd + Twisted.遗憾的是,关于这些选项的文档很少,我无法在线找到关于Python上彗星生产规模用户的好信息.

有没有人在生产系统中成功实现Python上的彗星?你是怎么做的,我在哪里可以找到实现自己的资源?

python cometd python-stackless

31
推荐指数
3
解决办法
2万
查看次数

在Spring MVC WebApp中推送通知

我目前正在使用Spring MVC编写论坛Web应用程序.我只是春天的初学者,现在只用了大约一个星期.

我需要实现推送通知.以下是方案:用户A登录并创建帖子.当用户A仍然登录时,用户B对用户A的帖子发表评论.用户A收到一些用户已对其帖子发表评论的通知,而他的浏览器没有刷新页面.

我需要帮助向用户A发送通知,即用户B异步评论他的帖子.我做了一些研究,发现有一个名为CometD的软件包我可以使用,但我找不到任何简单的教程供我理解.

任何人都可以建议任何其他包/方式来解决我的问题?或者如果你有任何简单的CometD教程,那也会很棒.

java spring spring-mvc cometd push-notification

14
推荐指数
2
解决办法
3万
查看次数

什么是Cometd?为什么使用它以及如何使用它

我只是一个Cometd的初学者,我很感兴趣并且想要了解cometd是什么以及使用了什么我用Google搜索并找到了一些资源.在以下链接中1. http://docs.cometd. org/reference/installation.html#d0e346.

我尝试了给定的演示,但我无法从中获得预期的输出.任何人都可以发布一些资源网址,以便我可以学习?

cometd

11
推荐指数
1
解决办法
1万
查看次数

将jetty url-pattern匹配到只有根目录

我想只在密码保护Jetty WebApp的上下文路径上的根目录.我的上下文路径是/ MyApp,所以我想要一个密码来访问:

http://localhost:8080/MyApp
Run Code Online (Sandbox Code Playgroud)

但不是:

http://localhost:8080/MyApp/cometd
Run Code Online (Sandbox Code Playgroud)

我目前的设置如下(注意网址格式):

<security-constraint>   
    <web-resource-collection>
        <web-resource-name>Private Page</web-resource-name>
            <url-pattern>/</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>moderator</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Test Realm</realm-name>
</login-config>
Run Code Online (Sandbox Code Playgroud)

我希望这只能通过/和/*工作的性质来发挥作用.我也看到过这个资源,我认为这表明这应该起作用了:http://www.coderanch.com/t/364782/Servlets/java/there-key-difference-between-url

但是,对于我的情况,网址模式:

<url-pattern>/</url-pattern>
Run Code Online (Sandbox Code Playgroud)

<url-pattern>/*</url-pattern>
Run Code Online (Sandbox Code Playgroud)

似乎表现得完全一样:两者兼而有之

http://localhost:8080/MyApp 
Run Code Online (Sandbox Code Playgroud)

http://localhost:8080/MyApp/cometd
Run Code Online (Sandbox Code Playgroud)

两个密码保护.

当然,如果我改为/ nothingishere,就像一个完整性测试一样,没有任何密码保护,除了/ MyApp/nothingishere

有谁知道如何只保护Web servlets的根目录?

passwords servlets web-applications jetty cometd

8
推荐指数
1
解决办法
3066
查看次数

Django和Long Polling

我需要在我的应用程序中实现长轮询以检索事件.但我不知道该怎么做.我知道长轮询的概念,即保持连接打开,直到事件发生.但是我该如何在我的项目中实现这一点.如果你能给我一个简单的长轮询客户端示例和我想的观点,我真的很感激.谢谢!

django comet cometd long-polling

8
推荐指数
1
解决办法
5897
查看次数

在C#中使用Google Channel API

官方文档没有提到支持,但我想知道是否可以连接客户端程序而不是javascript来使用Channel API.我目前正在使用Windows应用程序的基本轮询技术,使用Channel API可以提高响应速度并减少负载.

我认为,作为一个丑陋的黑客,我可以在后台渲染一个隐藏的webbrowser对象,并在其中运行javascript,然后以此为基础.有更好的解决方案吗?

c# google-app-engine comet cometd channel-api

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

使用Jetty的WebSocketClientFactory自定义密钥库

我有一个Java项目,它通过使用自签名证书的安全WebSocket传输连接到CometD服务器.我正在WebSocketClientFactory按以下方式配置:

wssFactory.getSslContextFactory().setKeyStorePath("/path/to/my/custom.jks");
wssFactory.getSslContextFactory().setKeyStorePassword("mypass");
Run Code Online (Sandbox Code Playgroud)

然后创建我的BayeuxClient喜欢:

BayeuxClient client = new BayeuxClient(
        "wss://myserver.com/cometd",
        WebSocketTransport.create(clientOptions, wssFactory));
Run Code Online (Sandbox Code Playgroud)

实际上,当第一次加载时,似乎配置正确:

[DEBUG] 2012-08-07 12:58:05,786 : starting org.eclipse.jetty.websocket.WebSocketClientFactory@75cfa3d2
[DEBUG] 2012-08-07 12:58:05,786 : starting qtp2005556553{8<=0<=0/254,-1}
[DEBUG] 2012-08-07 12:58:05,788 : STARTED qtp2005556553{8<=7<=8/254,0}
[DEBUG] 2012-08-07 12:58:05,788 : starting org.eclipse.jetty.websocket.WebSocketClientFactory$WebSocketClientSelector@50c8c3b8
[DEBUG] 2012-08-07 12:58:05,795 : STARTED org.eclipse.jetty.websocket.WebSocketClientFactory$WebSocketClientSelector@50c8c3b8
[DEBUG] 2012-08-07 12:58:05,795 : Starting Thread[qtp2005556553-33 Selector0,5,main] on org.eclipse.jetty.io.nio.SelectorManager$1@346fe350
[DEBUG] 2012-08-07 12:58:05,797 : starting SslContextFactory@4240eca3(/Users/apetresc/Downloads/infrastructure.jks,null)
[INFO ] 2012-08-07 12:58:05,981 : Enabled Protocols [SSLv2Hello, SSLv3, TLSv1] of [SSLv2Hello, SSLv3, TLSv1]
[DEBUG] 2012-08-07 12:58:05,981 : …
Run Code Online (Sandbox Code Playgroud)

java security ssl jetty cometd

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

为什么mongodb似乎保存了一些二进制对象而不是其他对象?

我不知道从哪里开始或哪些信息相关,请告诉我哪些其他信息可能有助于解决此问题.

我正在开发一个简单的cometd应用程序,我正在使用mongodb作为我的存储后端.我在应用程序启动时获取了一个mongodb实例,并将此实例用于所有查询.事实上,这是由mongo java驱动程序文档推荐的,如下所述:http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency.我正在抓住吸管认为这个问题与线程安全有关,但根据该链接,mongodb完全是线程安全的.

这是有趣的地方.我有一个课程延伸BasicDBObject.

public class MyBasicDBObject {

    private static final String MAP = "map";

    public boolean updateMapAnd(String submap, String key, byte[] value) {
         Map topMap = (Map)this.get(MAP);
         Map embeddedMap = topMap.get(submap);
         byte[] oldValue = embeddedMap.get(key);

         newValue = UtilityClass.binaryAnd(oldValue, value);

         embeddedMap.put(key, newValue);
         topMap.put(submap, embeddedMap);
         this.put(MAP, topMap);
    }

    public boolean updateMapXor(String submap, String key, byte[] value) {
         Map topMap = (Map)this.get(MAP);
         Map embeddedMap = topMap.get(submap);
         byte[] oldValue = embeddedMap.get(key);

         newValue = UtilityClass.binaryXor(oldValue, value);

         embeddedMap.put(key, newValue); …
Run Code Online (Sandbox Code Playgroud)

java cometd mongodb

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

使用HTTP会话配对cometd会话

我们有一个使用Jetty 8.1,dojo和cometd的Web应用程序,它使用(1)JSON/HTTP REST API进行同步操作和(2)cometd API从服务器接收大量事件,在浏览器和Web容器之间进行交互.

我们还不完全清楚的是如何优雅地管理这两种不同API的认证会话,特别是因为我们将尽可能使用websocket而不是常规HTTP.该应用程序使用标准Jetty LDAP模块使用基于表单的身份验证.因此,从HTTP角度来看,容器为浏览器提供了标准的jsessionid,如下所示:

Cookie: jsessionid=758E2FAD7C199D722DA8B5E243E0E27D
Run Code Online (Sandbox Code Playgroud)

基于西蒙娜博尔德的帖子在这里似乎推荐的解决方案是的cometd握手这就是我们正在做的过程中通过此令牌.

我们遇到的问题是有两个根本不同的会话 - HTTP会话和Bayeux cometd会话.由于潜在的内存泄漏和安全问题等原因,我们希望它们一致终止或"配对".如果用户的HTTP会话终止,我们希望相应的Bayeux会话也终止,反之亦然.有推荐的方法吗?

jetty cometd

6
推荐指数
1
解决办法
2289
查看次数

最小化时,Safari JavaScript setTimeout停止

这与以下内容有关:
用于El Capitan的
Safari 9.1 用于Sierra的Safari 10

当浏览器或标签失去焦点(主要是最小化)时,是否有人知道Safari在JavaScript引擎中针对setTimeout()做什么?

我创建了一个简单的JavaScript Web应用程序,该应用程序在Safari中加载,该应用程序调用JavaScript setTimeout(),该方法将在超时值之后传递另一个要执行的函数。该函数将日期/时间打印到控制台,然后以相同的超时值调用setTimeout()。

如果Safari选项卡失去焦点或浏览器最小化,则一段时间后Safari似乎停止执行setTimeout和随后的要调用的函数,直到返回焦点为止,才执行任何函数。就像事件循环停止处理一样。

注意:不会丢失任何函数调用,它们只会暂停,并在浏览器重新获得焦点时重新启动。

我在Firefox,Chrome或IE11中没有注意到这一点。

引起此问题的主要原因是该问题主要是在我维护的Web应用程序中观察到的,该应用程序使用CometD进行与服务器的通信。CometD库使用setTimeout每30秒执行一次向服务器的请求。如果运行该应用程序的浏览器最小化,则CometD似乎停止与服务器通信,直到再次最大化浏览器为止。

javascript safari settimeout cometd

6
推荐指数
1
解决办法
2166
查看次数