前端用node+react,怎么使用socket.io-client连接java开发的http服务端,请写出代码
时间: 2024-03-06 22:46:29 浏览: 217
假设你的 Java 服务端代码监听在 `http://localhost:3000` 上,下面是一个使用 `socket.io-client` 连接 Java 服务端的前端代码示例:
```jsx
import React, { useEffect, useState } from 'react';
import io from 'socket.io-client';
const SOCKET_SERVER_URL = 'http://localhost:3000'; // Java 服务端地址
function App() {
const [messages, setMessages] = useState([]);
useEffect(() => {
const socket = io(SOCKET_SERVER_URL);
// 监听来自 Java 服务端的消息
socket.on('message', (message) => {
setMessages((messages) => [...messages, message]);
});
// 在组件销毁时断开连接
return () => {
socket.disconnect();
};
}, []);
return (
<div>
<h1>Messages:</h1>
<ul>
{messages.map((message, index) => (
<li key={index}>{message}</li>
))}
</ul>
</div>
);
}
export default App;
```
在上述代码中,我们先通过 `import` 语句导入了 `socket.io-client` 库,然后在组件中创建了一个 `socket` 对象,通过调用 `io()` 方法并传入 Java 服务端的地址来连接服务端。在 `useEffect()` 钩子函数中,我们监听了来自服务端的 `message` 事件,并将消息添加到 `messages` 数组中。在组件销毁时,我们调用 `socket.disconnect()` 方法断开与 Java 服务端的连接。最后,我们在组件的 JSX 中渲染了消息列表。
需要注意的是,Java 服务端必须使用 `socket.io` 库来与前端建立连接,否则无法使用 `socket.io-client` 连接。如果你的 Java 服务端没有使用 `socket.io` 库,可以参考 `socket.io` 官方文档来实现 Java 版本的 `socket.io` 服务端。
阅读全文