客户端初始化
一旦你安装了 Socket.IO 客户端库,你就可以初始化客户端了。完整的选项列表可以在这里找到。
提示
对于 TypeScript 用户,可以为事件提供类型提示。请查看这里。
在下面的示例中,io
对象来自
<script>
导入
<script src="/socket.io/socket.io.js"></script>
- ESM 导入
<script type="module">
import { io } from "https://cdn.socket.io/4.7.5/socket.io.esm.min.js";
</script>
- NPM
- CommonJS
- ES 模块
- TypeScript
const { io } = require("socket.io-client");
import { io } from "socket.io-client";
import { io } from "socket.io-client";
来自同一个域
如果你的前端与你的服务器在同一个域上,你可以简单地使用
const socket = io();
服务器 URL 将从window.location 对象中推断出来。
来自不同的域
如果你的前端没有与你的服务器在同一个域上,你必须传递你的服务器的 URL。
const socket = io("https://server-domain.com");
在这种情况下,请确保在服务器上启用了跨域资源共享 (CORS)。
信息
你可以使用 https
或 wss
(分别为 http
或 ws
)。
// the following forms are similar
const socket = io("https://server-domain.com");
const socket = io("wss://server-domain.com");
const socket = io("server-domain.com"); // only in the browser when the page is served over https (will not work in Node.js)
自定义命名空间
在上面的示例中,客户端将连接到主命名空间。仅使用主命名空间对于大多数用例应该足够,但你可以使用以下方法指定命名空间
// same origin version
const socket = io("/admin");
// cross origin version
const socket = io("https://server-domain.com/admin");
你可以在这里找到有关命名空间的更多详细信息这里。
选项
完整的可用选项列表可以在这里找到。