嗨,大家好.我刚刚开始在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中构建一个简单的聊天服务器,用户可以在其中进行私人对话.我想在服务器级别(而不是在客户端)保存这些对话,以便我可以将它们作为对话日志服务列出给用户.我也在我的软件中使用MySQL作为数据库.
我正在寻找的是保存这些对话的优化方法,以及稍后列出它们的快速方法.到目前为止,我已经考虑了2个实现.
使用MySQL数据库和
a)将对话作为文本连续保存,但问题是某些对话非常庞大(很多字符),我可能在保存整个对话时遇到问题
b)连续保存会话的每一行,但这样当我想列出整个会话时,速度问题就会出现
将每个会话保存在一个单独的文本文件中,但我担心会出现读/写问题,特别是当用户(客户端)写入(发送文本)非常快时.
谢谢
我是 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) 我正在尝试在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).
实现这一目标的最佳方法是什么?
有没有一种方法可以跟踪通过一个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) 我是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) 我认为我的问题很简单,但我找不到一个简单的解决方案.这是一个例子:
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"需要做什么?
提前致谢
我是Paypal API的新手。我正在尝试的是在用户使用webhooks api购买商品时收到通知。
在Webhooks模拟器中,我介绍了URL,贝宝可以在其中通知我有关销售的信息,并且我模拟了“付款销售已完成”。该URL处的页面被调用,并且贝宝(Paypal)说“已发送事件数据”,并且发送了一个JSON对象。一切都很好,但是如何在PHP中获取该json对象呢?它通过POST发送吗?
谢谢
我有一个程序,有一个ConcurrentHashMap
不同的线程可以添加/删除地图中的项目.
我很想知道在25个项目中读取地图的最佳方法是什么.我想要做的是这样的:用户点击按钮并从地图中读取25个项目(与订单无关).之后,他可以单击"下一步"按钮并读取另外25个项目(与前25个项目不同),依此类推.
我不确定我是否可以这样做ConcurrentHashMap
.我不想使用数据库,我想把它保存在内存中.我不认为转换Map
成一个ArrayList
会有帮助,因为大多数时候都会在地图中添加/删除项目.
我愿意接受任何解决方案,甚至是第三方库.
更新:我也没有被束缚ConcurrentHashMap
.我只是在寻找最好的解决方案
更新2:他们的钥匙是String
谢谢
正如标题所说。我有这个代码: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;
并且没有发生转换。
如果我在新线程中运行所有内容,它会起作用。
注意:我不能使用可见性。它必须是显示:无