在 React Native 中使用 @stomp/stompjs 的 Web 套接字连接
Web socket connections with @stomp/stompjs in React Native
我对 React Native 还是个新手,我目前正在做的项目需要在 React native 应用程序中实现 websocket 连接并订阅主题以接收来自 websocket 的消息。当我尝试使用 @stomp/stompjs 实现它时,我无法连接到 websocket,onConnect 函数不起作用。
下面是我的代码
import { Client, Message } from '@stomp/stompjs';
const stompConfig = {
connectHeaders: {},
brokerURL: "ws://203xxxxxxxx/xxx/connectSocket",
debug: function (str) {
console.log('STOMP: ' + str);
},
reconnectDelay: 200,
onConnect: function (frame) {
console.log("connected")
const subscription = stompClient.subscribe("/topic/public/" + userId, function (message) {
console.log(JSON.parse(message.body));
});
},
onStompError: (frame) => {
console.log('Additional details: ' + frame.body);
},
}
stompClient = new Client(stompConfig);
useEffect(() => {
stompClient.activate();
}, [])
这是我得到的输出日志
LOG STOMP: Opening Web Socket...
LOG STOMP: Web Socket Opened...
LOG STOMP: >>> CONNECT
accept-version:1.0,1.1,1.2
heart-beat:10000,10000
任何帮助将不胜感激:)
伙计们,在做了一些研究后,我发现解决方案显然在 @stomp/stompjs 中存在某种类型的错误,您可以查看本机反应 here
我通过将这行代码添加到我的 stompConfig
来解决我的问题
stompConfig:{
...,
forceBinaryWSFrames: true,
appendMissingNULLonIncoming: true,
}
我对 React Native 还是个新手,我目前正在做的项目需要在 React native 应用程序中实现 websocket 连接并订阅主题以接收来自 websocket 的消息。当我尝试使用 @stomp/stompjs 实现它时,我无法连接到 websocket,onConnect 函数不起作用。
下面是我的代码
import { Client, Message } from '@stomp/stompjs';
const stompConfig = {
connectHeaders: {},
brokerURL: "ws://203xxxxxxxx/xxx/connectSocket",
debug: function (str) {
console.log('STOMP: ' + str);
},
reconnectDelay: 200,
onConnect: function (frame) {
console.log("connected")
const subscription = stompClient.subscribe("/topic/public/" + userId, function (message) {
console.log(JSON.parse(message.body));
});
},
onStompError: (frame) => {
console.log('Additional details: ' + frame.body);
},
}
stompClient = new Client(stompConfig);
useEffect(() => {
stompClient.activate();
}, [])
这是我得到的输出日志
LOG STOMP: Opening Web Socket...
LOG STOMP: Web Socket Opened...
LOG STOMP: >>> CONNECT
accept-version:1.0,1.1,1.2
heart-beat:10000,10000
任何帮助将不胜感激:)
伙计们,在做了一些研究后,我发现解决方案显然在 @stomp/stompjs 中存在某种类型的错误,您可以查看本机反应 here 我通过将这行代码添加到我的 stompConfig
来解决我的问题stompConfig:{
...,
forceBinaryWSFrames: true,
appendMissingNULLonIncoming: true,
}