小编Dou*_*eri的帖子

如何在java中使用Smack XMPP库处理TLS证书

嗨,大家好.我刚刚开始在Java中使用XMPP,包括服务器端和客户端端.在服务器端我使用的是Apache Vysper 0.7,在客户端我使用的是Ignite Smack 3.1.0我使用的是来自apache vysper演示页面的小型XMPP嵌入式服务器,使用源代码附带的TLS证书:

    XMPPServer server = new XMPPServer("localhost");  

    StorageProviderRegistry providerRegistry = new MemoryStorageProviderRegistry();  

    AccountManagement accountManagement = (AccountManagement) providerRegistry.retrieve(AccountManagement.class);  

    Entity user = EntityImpl.parseUnchecked("user@localhost");  
    accountManagement.addUser(user, "password");

    server.setStorageProviderRegistry(providerRegistry);  

    server.addEndpoint(new TCPEndpoint());  

    server.setTLSCertificateInfo(new File("bogus_mina_tls.cert"), "boguspw");  

    server.start();  
    System.out.println("Vysper server is running...");
Run Code Online (Sandbox Code Playgroud)

问题是这不是正确/有效的证书.如果我使用pidgin测试我的服务器,会弹出一个警告窗口并告诉我证书无效,以及一个按钮,以防我想为此添加例外.

我想要的是用Smack api做同样的事情,但我不知道怎么做.

在我的smack api上我使用的是这样的东西:

    ConnectionConfiguration config = new ConnectionConfiguration("localhost",5222, "localhost");
    config.setSASLAuthenticationEnabled(false);

    connection = new XMPPConnection(config);
    connection.connect();

    connection.login(userName, password);
Run Code Online (Sandbox Code Playgroud)

所以这就是.接受或拒绝无效证书需要做什么?谢谢你的帮助.

java ssl xmpp smack

3
推荐指数
1
解决办法
8557
查看次数

聊天服务器:保存对话日志的最佳(优化)方式是什么

我正在java中构建一个简单的聊天服务器,用户可以在其中进行私人对话.我想在服务器级别(而不是在客户端)保存这些对话,以便我可以将它们作为对话日志服务列出给用户.我也在我的软件中使用MySQL作为数据库.

我正在寻找的是保存这些对话的优化方法,以及稍后列出它们的快速方法.到目前为止,我已经考虑了2个实现.

  1. 使用MySQL数据库和

    a)将对话作为文本连续保存,但问题是某些对话非常庞大(很多字符),我可能在保存整个对话时遇到问题

    b)连续保存会话的每一行,但这样当我想列出整个会话时,速度问题就会出现

  2. 将每个会话保存在一个单独的文本文件中,但我担心会出现读/写问题,特别是当用户(客户端)写入(发送文本)非常快时.

谢谢

java mysql optimization chat livechat

3
推荐指数
1
解决办法
4262
查看次数

Apache Lucene 从文档返回构面字段

我是 Apache Lucene 的新手。我正在使用最新版本:6.3.0 和 facet 库。基于我在 github 上找到的示例:https : //github.com/apache/lucene-solr/tree/master/lucene/demo/src/java/org/apache/lucene/demo/facet

我有以下文件

Document doc = new Document();
doc.add(new FacetField("Author", "Bob"));
doc.add(new FacetField("Publish Date", "2010", "10", "15"));
doc.add(new FacetField("Tags", "A"));
doc.add(new FacetField("Tags", "B"));

//[FacetField(dim=Author path=[Bob]), FacetField(dim=Publish Date path=[2010, 10, 15]), FacetField(dim=Tags path=[A]), FacetField(dim=Tags path=[B])]
System.out.println(doc.getFields());

//null
System.out.println(doc.getField("Author"));
Run Code Online (Sandbox Code Playgroud)

doc.getFields()返回所有字段,但doc.getField("Author")返回 null。难道我做错了什么?

如果我做这样的事情,请进一步挖掘:

for(IndexableField myField:doc.getFields()){
    System.out.println(myField.name());
}
Run Code Online (Sandbox Code Playgroud)

打印如下:

dummy
dummy
dummy
dummy
Run Code Online (Sandbox Code Playgroud)

如果我做这样的事情,doc.getField("dummy")它确实会返回第一个字段(作者)。

查看 FacetField 源代码:https : //github.com/apache/lucene-solr/blob/branch_6_3/lucene/facet/src/java/org/apache/lucene/facet/FacetField.java 似乎所有的 facet 字段都是用“虚拟”创建:https : //github.com/apache/lucene-solr/blob/branch_6_3/lucene/facet/src/java/org/apache/lucene/facet/FacetField.java

public FacetField(String dim, …
Run Code Online (Sandbox Code Playgroud)

java lucene solr facet

3
推荐指数
1
解决办法
856
查看次数

Angular 2+ - 根据路线改变css

我正在尝试在Angular中构建一个选项卡菜单(v2.4.5).根据路线激活选项卡.

例如,我有这样的路线:

const routes: Routes = [
  {
    path: 'tab1',
    component: Tab1Component,
  },
  {
    path: 'tab2',
    component: Tab2Component,
  }
];
Run Code Online (Sandbox Code Playgroud)

如果用户输入http://localhost/tab2我想要tab2突出显示的地址(更改选项卡css).

实现这一目标的最佳方法是什么?

css angular

3
推荐指数
1
解决办法
4156
查看次数

在Websocket中发送二进制文件的进度条

有没有一种方法可以跟踪通过一个Websocket连接发送了多少字节,所以我可以显示一个进度条。

例如,我要发送图像。我已经知道图像的大小,我只需要有一个事件,例如最后一秒已传输多少字节或类似的事件。

这是我的代码

//html
<input type="file" accept="image/*" id="input">

//js
var inputElement = document.getElementById("input");
inputElement.addEventListener("change", handleFiles, false);
function handleFiles() {
    var fileList = this.files;

    var connection = new WebSocket('ws://localhost:8080');
    connection.binaryType = "arraybuffer";
    connection.onopen = () => {
        connection.send(fileList[0]);
    };
}
Run Code Online (Sandbox Code Playgroud)

javascript websocket

3
推荐指数
1
解决办法
899
查看次数

在以编程方式创建的模式中,graphql-java变量是必需的(必需)

我是GraphQL和graphql-java的新手。我正在尝试以编程方式创建此架构

type Query{name:String!}
Run Code Online (Sandbox Code Playgroud)

我不知道如何使name字段不为空String! 默认情况下这是可选的。

GraphQLObjectType queryType = GraphQLObjectType.newObject()
        .name("Query")
        .field(GraphQLFieldDefinition.newFieldDefinition()
                .name("name")
                .type(Scalars.GraphQLString)
                .dataFetcher(new StaticDataFetcher("Joe")))
        .build();
Run Code Online (Sandbox Code Playgroud)

java graphql graphql-java

3
推荐指数
1
解决办法
297
查看次数

JavaScript将变量作为值传递而不是作为引用传递

我认为我的问题很简单,但我找不到一个简单的解决方案.这是一个例子:

var obj1 = {
    m1:"a",
    m2:"b" 
};

var obj2 = {
    m:obj1
};


obj2.m.m1 = "c";


document.write(obj2.m.m1+"<br>"); //output: c

document.write(obj1.m1+"<br>"); // output: c ( I wanted to be a)
Run Code Online (Sandbox Code Playgroud)

那么..从obj1.m1返回"a"需要做什么?

提前致谢

javascript variables scope

2
推荐指数
1
解决办法
3944
查看次数

从Paypal Webhooks获取事件数据

我是Paypal API的新手。我正在尝试的是在用户使用webhooks api购买商品时收到通知。

在Webhooks模拟器中,我介绍了URL,贝宝可以在其中通知我有关销售的信息,并且我模拟了“付款销售已完成”。该URL处的页面被调用,并且贝宝(Paypal)说“已发送事件数据”,并且发送了一个JSON对象。一切都很好,但是如何在PHP中获取该json对象呢?它通过POST发送吗?

谢谢

php paypal paypal-sandbox paypal-rest-sdk

2
推荐指数
1
解决办法
894
查看次数

以块的形式读取ConcurrentHashMap(或类似的)

我有一个程序,有一个ConcurrentHashMap不同的线程可以添加/删除地图中的项目.

我很想知道在25个项目中读取地图的最佳方法是什么.我想要做的是这样的:用户点击按钮并从地图中读取25个项目(与订单无关).之后,他可以单击"下一步"按钮并读取另外25个项目(与前25个项目不同),依此类推.

我不确定我是否可以这样做ConcurrentHashMap.我不想使用数据库,我想把它保存在内存中.我不认为转换Map成一个ArrayList会有帮助,因为大多数时候都会在地图中添加/删除项目.

我愿意接受任何解决方案,甚至是第三方库.

更新:我也没有被束缚ConcurrentHashMap.我只是在寻找最好的解决方案

更新2:他们的钥匙是String

谢谢

java concurrency hashmap java.util.concurrent

2
推荐指数
1
解决办法
390
查看次数

css 过渡不透明度在元素具有 display:none 然后更改为 display:block 的地方不起作用

正如标题所说。我有这个代码:https : //jsfiddle.net/fwo9ym1o/

//javascript
    var container = document.querySelector("#container");

    container.style.display = "block";

    //this is not working
    //container.style.opacity = 1;


    //this is working
    setTimeout(function() {
       container.style.opacity = 1;
    }, 0);

/css
    .container {
        height: 200px;
        width: 200px;
        background-color: salmon;
        display: none;
        border-radius: 5px;
        opacity: 0;
        transition: opacity 2s ease-in-out;
    }

//html
    <div id="container" class="container"></div>
Run Code Online (Sandbox Code Playgroud)

所以,我已经改变了 container.style.display = "block";then 应用container.style.opacity = 1;并且没有发生转换。

如果我在新线程中运行所有内容,它会起作用。

注意:我不能使用可见性。它必须是显示:无

html javascript css

2
推荐指数
1
解决办法
1144
查看次数