我正在用react native建立一个聊天应用程序。人们可以聊天,还可以在通知屏幕上显示通知(如“johndoe started following you”)。
在每个通知中,我想显示用户的联机状态。联机状态存储在redis数据库中。通过一个简单的axios请求,我可以获得联机状态。
axios({ url: 'http://myserver.com/online/' + userId)}).then(response => console.log(response.data.online)});
每个通知都是一个单独的组件( <Notification />
). 它看起来像这样(简化):
export default Notification = (props) => {
const { notification } = props;
const [isOnline, setIsOnline] = useState(false);
const getOnline = () => {
axios({
method: 'get',
url: 'http://myserver.com/online/' + userId)})
.then(response => setIsOnline(response.data.online)});
};
useEffect(() => {
getOnline();
}, []);
return (
<View>
{isOnline ? (
<Text>ONLINE</Text>
) : (
<Text>OFFLINE</Text>
)}
<Text>{notification.username} started following you!</Text>
<Text>Timestamp: {notification.timestamp}</Text>
</View>
);
};
问题是,每个通知都向服务器发出请求,以获取特定用户的联机状态。我现在正在我的服务器上测试它,我的代码正常工作,但问题是:如果我有数百个通知怎么办?我在平面列表中显示通知(据我所知,平面列表不会一次呈现所有项目),因此axios请求是分散的,但即便如此。
对服务器执行请求的适当数量是多少?是否可以分别处理每个请求,或者我应该合并它们(以及如何合并它们)?
暂无答案!
目前还没有任何答案,快来回答吧!