我正在开发React Native应用程序,它需要不断更新股票价格。
因此,我正在尝试找到可以帮助我设置套接字连接的稳定 NPM 包。
我需要发送这种数据以进行连接: 演示订阅活动...
{
"event": "subscribe",
"data": [
8967426,
8967938, //Instrument Tokens
]
}
这将订阅它并且观察者开始使用 Socket 获取数据。数据中添加的数字是工具令牌。
我尝试检查几个 Socket NPM 包,但没有收到任何适合具有此类请求的 React Native 移动应用程序的选项。
任何人都可以建议集成这个的最佳选择吗?
我已经审查了几个 NPM 包: https://socket.io/how-to/use-with-react-native https://www.npmjs.com/package/react-native-socketio https://www.npmjs.com/package/react-native-tcp-socket https://www.npmjs.com/package/react-native-use-websocket
但是我没有找到任何合适的选项,需要使用 JWT 令牌传递 URL 并传递库存商品的工具 ID,以便在响应观察者中获取价格。
这是所需的过程:
这就是我的实现方式:
第 1 步:声明套接字
var bSocket;
第 2 步:初始化并连接套接字
const tokenValue = await AsyncStorage.getItem('userToken');
let finalRUL = encodeURI('wss://YOUR_URL/?token=' + tokenValue);
bSocket = new WebSocket(finalRUL);
bSocket.onopen = (arg) => {
setTimeout(() => {
if (bSocket.readyState == WebSocket.OPEN) {
bSocket.send(scData);
}
}, 250);
};
bSocket.onmessage = (event) => {
const rData = JSON.parse(event.data);
};
bSocket.onerror = (error) => {
console.error('WebSocket error ::::>>>> ', error);
};
bSocket.onclose = (event) => {
console.log('+++++++++++++++++++++++++++++');
console.log(event);
console.log('+++++++++++++++++++++++++++++');
};
希望这对大家有帮助。