我正在尝试使用 React Bootstrap 中的表单组件构建一个自动完成搜索字段,该组件由浏览器呈现为输入。
这是我在 React 组件中所做的事情:
<FormControl
id="frenchToEnglishInput"
placeholder="type a word..."
aria-label="Recipient's username"
autocomplete="on"
data={frenchToEnglishWords}
onChange={this.fetchFrenchToEnglish}
renderItem = {item => {
return (
<div>
{item}
</div>
);
}}
/>
Run Code Online (Sandbox Code Playgroud)
该frenchToEnglishWords数组在组件外部声明为 a var,因为我打算在输入字段中键入一些值时更新它。
现在这是触发事件的函数onChange:
fetchFrenchToEnglish = async () => {
if(document.getElementById("frenchToEnglishInput").value!==''){
axios.get(dictionaryURIs.english.French_English+""+document.getElementById("frenchToEnglishInput").value)
.then(response => {
frenchToEnglishWords = response.data
})
}
}
Run Code Online (Sandbox Code Playgroud)
在集合上设置自动完成索引后,该请求是从 MongoDb 发出的,但这部分工作正常。
我的问题是,为什么我得到的唯一“自动完成”是由我之前输入的单词组成的?
或者也许我用作输入数据的数组必须是 a const(正如我在许多示例中看到的那样)而不是var?当我输入某个单词时,我没有从frenchToEnglishWords正在从数据库更新的 中得到任何自动建议。
我在 IBM Cloud 上创建了一个无法访问的集群。当我尝试以下命令时
ibmcloud ks cluster-config mycluster
Run Code Online (Sandbox Code Playgroud)
我得到这个回应:
失败的
{"incidentID":"4d426527e73acd83-CDG","code":"A0006","description":"The specified cluster could not be found. Target a region. If you're using resource groups, make sure that you target the correct resource group.","type":"Authentication","recoveryCLI":"To list the clusters you have access to, run 'ibmcloud ks clusters'. To check the resource group ID of the cluster, run 'ibmcloud ks cluster-get \u003ccluster_name_or_ID\u003e'. To list the resource groups that you have access, run 'ibmcloud resource groups'. To target the resource group, run 'ibmcloud target …Run Code Online (Sandbox Code Playgroud) 我试图通过 Keycloak 访问 Spring 应用程序,但总是收到 401 未经授权的错误。基本上,我有一个单独运行良好的聊天模块,但是一旦添加 Keycloak,由于 401 错误,我将无法访问该应用程序。我已经遵循了大约 3 个教程,这些教程显示了与我所做的类似的事情,但我仍然不知道我做错了什么。
这是我的应用程序的配置:
keycloak:
enabled: true
realm: myReal
resource: myReal-api
public-client: true
bearer-only: true
auth-server-url: http://localhost:8080/auth
credentials:
secret: 82eXXXXX-3XXX-4XXX-XXX7-287aXXXXXXXX
principal-attribute: preferred_username
cors: true
Run Code Online (Sandbox Code Playgroud)
我有localhost:port/一个第一个界面(没有 Keycloak 安全性),它有一个到我的服务的链接,即localhost:port/index/{topicName}. 现在,当我单击该链接时,我应该会看到 Keycloak 身份验证屏幕,但我却收到了 401 错误。
我检查了请求的标头,将 HttpServletRequest 作为参数添加到我的displayMessage方法中,实际上我可以在 IDE 的控制台中显示 access_token 和 X-Auth-Token。但似乎当我点击该链接时,它发送的请求没有令牌。
这是我的控制器方法(我的控制器类注释为@Controller:
keycloak:
enabled: true
realm: myReal
resource: myReal-api
public-client: true
bearer-only: true
auth-server-url: http://localhost:8080/auth
credentials:
secret: 82eXXXXX-3XXX-4XXX-XXX7-287aXXXXXXXX
principal-attribute: preferred_username
cors: true
Run Code Online (Sandbox Code Playgroud)
我的 Keycloak …
我正在使用 websocket 协议和 STOMP 作为消息协议为网络平台开发聊天模块。
这是我第一次使用任何消息代理,Kafka 是在公司(我正在工作的)网络平台上使用的消息代理,我猜是用于其他模块。之前我刚开始时使用的是 RabbitMQ,现在我必须切换到 Kafka。我在RabbitMQ的网站上看到有一整篇关于如何使用STOMP的文章,但是Kafka的官方网站上没有这样的东西。
但我探索了其他几个来源、许多教程,但找不到任何与 Kafka 一起使用 STOMP 协议相关的内容,这让我问这是否可能?
这是我的 websocket 配置类:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ws").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.setApplicationDestinationPrefixes("/app");
registry.enableSimpleBroker("/topic");
//Here's the line I wrote to use Kafka as a MB, but doesn't work
registry.enableStompBrokerRelay("/topic").setRelayHost("localhost").setRelayPort(9092);
Run Code Online (Sandbox Code Playgroud)
启动 Kafka,然后运行我的 Java Spring 应用程序后,我从 java.io.IOException 中收到“连接由对等方重置”,如果一切正常,则不应抛出该异常。
我使用 Kakfa 的 2.2.0 版本、Zookeeper 的 3.4.14 版本,并使用 STS 3 作为我的 IDE。
任何帮助,将不胜感激。
java ×2
apache-kafka ×1
autocomplete ×1
ibm-cloud ×1
javascript ×1
keycloak ×1
kubernetes ×1
reactjs ×1
spring ×1
spring-kafka ×1
stomp ×1
websocket ×1