我正在为我的Next JS项目添加SSE事件。 我有一个用于访问SSE事件的URL。
以下是代码:
const ssEvents = new EventSource(stream_url,{withCredentials:false})
ssEvents.addEventListener("participant.details", (e)=>{
var data = JSON.parse(e.data)
console.log(data)
})
我遇到了“EventSource未定义”的错误。由于EventSource是js中的内置库,我甚至可以在其中访问addEventListener。但是在执行时,它显示“EventSource未定义”。我不知道为什么会出现这种情况。我是否漏掉了需要添加到我的代码中的任何内容?请给我一些解决方案来修复它。代码是TypeScript编写的。我需要添加任何其他东西吗?
错误跟踪:
error - pages/index.tsx (55:19) @ Home
ReferenceError: EventSource is not defined
54 |
> 55 | const ssEvents = new EventSource(stream_url,{withCredentials:false})
| ^
56 |
tsConfig.json
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
"src/utils/analytics/index.js",
"react-google-captcha.d.ts",
"src/providers/apollo.tsx",
"src/providers/apollo-client.ts",
"src/utils/wallet/walletManager.js"
],
"exclude": ["node_modules"]
}
require("eventsource");
呢? - Wycknew EventSource(...)
。确保您从useEffect
中调用它。 - juliomalves