javascript - Stomp JS 基本认证
问题描述
我已经使用 Spring Stomp 实现了一个服务器,现在我正在尝试使用stomp-js rx-stomp连接到我的服务器。我发现真正尴尬的是JS实现不起作用,尽管我已经设法使用Java stomp 客户端使其工作。
Java客户端代码(作品):
WebSocketStompClient stompClient = new WebSocketStompClient(new SockJsClient(createTransportClient()));
stompClient.setMessageConverter(new MappingJackson2MessageConverter());
final String URL = "http://localhost:" + port + "/ws";
// -< Headers used for authentication
WebSocketHttpHeaders headers = new WebSocketHttpHeaders();
String user = "user1", pass = "abcd1234";
headers.add("Authorization", "Basic " + getBasicAuthToken(user, pass));
StompSession stompSession = stompClient.connect(URL, headers, new StompSessionHandlerAdapter() {
}).get(10, TimeUnit.SECONDS);
JS客户端代码(不起作用):
connect: function() {
const stompConfig = {
connectHeaders: {
login: "user1",
passcode: "abcd1234",
Authorization: "Basic dXNlcjE6YWJjZDEyMzQ="
},
webSocketFactory: function() {
return new SockJS("http://localhost:8080/ws");
},
reconnectDelay: 60000
};
rxStomp = new RxStomp.RxStomp();
rxStomp.configure(stompConfig);
rxStomp.activate();
rxStomp.connected$.subscribe(res => {
if (res === 1) console.log('connected');
else console.log('not connected');
});
}
首先,当我看到一个提示要求我输入用户名和密码时,我觉得真的很尴尬。如果我在那里输入凭据,则客户端连接成功。所以,我认为我在连接标头方面一定做错了什么。如您所见,我尝试在那里添加基本身份验证令牌,希望它能解决一些问题。它没有。
解决方案
推荐阅读
- elasticsearch - 当我在弹性搜索中使用翻转时,我是写入别名还是索引?
- javascript - 浮动按钮和“弯曲”导航栏
- javascript - 谷歌表格脚本提交按钮不起作用
- bash - 需要创建一个循环菜单shell脚本,不知道如何让它循环
- python - Pandas 在索引和值范围之间选择数据
- python - 如何将一列文本转换为 n-gram 到 one-hot 编码?
- google-bigquery - 如何将日期数据类型从字符串更改为日期
- c++ - OpenGL透明纹理重叠/混合问题
- python - 为什么多类逻辑回归模型系数会根据类标签而变化?
- c++ - 如何在保持连续性的同时拆分 OpenCV 矩阵?