我正在尝试使用 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