如何使用 javascript 对多个 url 进行 longpoll?
How do longpoll multiple urls using javascript?
目标是让多个 longpoll 连接对多个 url 开放(如 example.com/user/1
、example.com/user/2
等),并在更新数据时对其进行处理,然后重新连接。这是我目前所拥有的一个简单示例:
async function longpoll(url) {
http.get(url, (response) => {
response.on('data', (data) => {
// do something with data
}
response.on('end', () => {
// cleanup
longpoll(url)
}
}
}
我还有更多事情要做,但这是基本设置。这适用于单个 url,但如果我尝试添加更多,就像在循环中一样,它会关闭除一个以外的所有内容。有人可以指出我能够实现这一目标的方向吗?
function startLongPollingForMultipleUrls(urls) {
urls.forEach(url => longpoll(url);
}
function longpoll(url) {
http.get(url, (response) => {
response.on('data', (data) => {
// do something with data
}
response.on('end', () => {
// cleanup
// Use a timeout to wait 1 second between calls
setTimeout(() => longpoll(url), 1000)
}
}
}
const myUrls = ['example.com/user/1', 'example.com/user/2']
startLongPollingForMultipleUrls(myUrls);
目标是让多个 longpoll 连接对多个 url 开放(如 example.com/user/1
、example.com/user/2
等),并在更新数据时对其进行处理,然后重新连接。这是我目前所拥有的一个简单示例:
async function longpoll(url) {
http.get(url, (response) => {
response.on('data', (data) => {
// do something with data
}
response.on('end', () => {
// cleanup
longpoll(url)
}
}
}
我还有更多事情要做,但这是基本设置。这适用于单个 url,但如果我尝试添加更多,就像在循环中一样,它会关闭除一个以外的所有内容。有人可以指出我能够实现这一目标的方向吗?
function startLongPollingForMultipleUrls(urls) {
urls.forEach(url => longpoll(url);
}
function longpoll(url) {
http.get(url, (response) => {
response.on('data', (data) => {
// do something with data
}
response.on('end', () => {
// cleanup
// Use a timeout to wait 1 second between calls
setTimeout(() => longpoll(url), 1000)
}
}
}
const myUrls = ['example.com/user/1', 'example.com/user/2']
startLongPollingForMultipleUrls(myUrls);