
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
PeerServer是PeerJS的信令服务器,用于帮助PeerJS客户端建立直接的P2P连接,数据传输不经过服务器代理。该Docker镜像提供即用型部署方案,支持多种配置选项,适用于需要建立P2P通信的应用场景。
适用于需要建立P2P连接的各类应用,如:
基本运行
shdocker run -p 9000:9000 -d peerjs/peerjs-server
自定义端口和路径
shdocker run -p 8080:8080 -d peerjs/peerjs-server --port 8080 --path /myapp
Kubernetes部署
shkubectl run peerjs-server --image=peerjs/peerjs-server --port 9000 --expose -- --port 9000 --path /myapp
| CLI选项 | JS选项 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|---|
--port, -p | port | 监听端口(数字) | 是 | |
--key, -k | key | 连接密钥(字符串),客户端必须提供此密钥才能调用API方法 | 否 | "peerjs" |
--path | path | 路径(字符串),服务器响应根URL+路径的请求。例如:设置path为/myapp并通过peerjs --port 9000 --path /myapp运行服务器,访问[***] | 否 | "/" |
--proxied | proxied | 若PeerServer位于反向代理后,设为true(布尔值) | 否 | false |
--expire_timeout, -t | expire_timeout | 消息过期时间(毫秒),超时后发送者将收到EXPIRE消息 | 否 | 5000 |
--alive_timeout | alive_timeout | 连接超时时间(毫秒),若服务器未从客户端收到任何数据(包括pong消息),将断开客户端连接 | 否 | 60000 |
--concurrent_limit, -c | concurrent_limit | WebSocket服务器允许的最大客户端连接数(数字) | 否 | 5000 |
--sslkey | sslkey | SSL密钥路径(字符串) | 否 | |
--sslcert | sslcert | SSL证书路径(字符串) | 否 | |
--allow_discovery | allow_discovery | 允许使用GET /peers HTTP API获取所有已连接客户端ID列表(布尔值) | 否 | |
--cors | corsOptions | 允许访问服务器的CORS源 | 否 | |
generateClientId | 生成客户端ID的函数(() => string),用于调用/id API方法时生成随机客户端ID | 否 | uuid/v4 |
通过传递PEM编码的证书和密钥启用HTTPS:
javascriptconst fs = require("fs"); const { PeerServer } = require("peer"); const peerServer = PeerServer({ port: 9000, ssl: { key: fs.readFileSync("/path/to/ssl/key.key"), cert: fs.readFileSync("/path/to/ssl/certificate.crt"), }, });
也可传递其他HTTPS选项,如SNICallback:
javascriptconst fs = require("fs"); const { PeerServer } = require("peer"); const peerServer = PeerServer({ port: 9000, ssl: { SNICallback: (servername, cb) => { // 自定义SNI处理逻辑 }, }, });
若PeerServer位于反向代理后,需设置proxied选项:
javascriptconst { PeerServer } = require("peer"); const peerServer = PeerServer({ port: 9000, path: "/myapp", proxied: true, // 传递给express的trust proxy设置 });
默认使用uuid/v4生成客户端ID,可通过generateClientId选项自定义:
javascriptconst { PeerServer } = require("peer"); const customGenerationFunction = () => (Math.random().toString(36) + "0000000000000000000").substr(2, 16); const peerServer = PeerServer({ port: 9000, path: "/myapp", generateClientId: customGenerationFunction, });
访问[***]
javascriptconst express = require("express"); const { ExpressPeerServer } = require("peer"); const app = express(); app.get("/", (req, res) => res.send("Hello world!")); const server = app.listen(9000); const peerServer = ExpressPeerServer(server, { path: "/myapp", }); app.use("/peerjs", peerServer);
访问[***]
connection:当客户端连接到服务器时触发javascriptpeerServer.on('connection', (client) => { /* 处理连接事件 */ });
disconnect:当客户端断开连接或无法访问时触发javascriptpeerServer.on('disconnect', (client) => { /* 处理断开事件 */ });
shdocker build -t my-peerjs-server https://github.com/peers/peerjs-server.git
运行自定义镜像:
shdocker run -p 9000:9000 -d my-peerjs-server
html<script> const peer = new Peer("someid", { host: "localhost", port: 9000, path: "/myapp", }); </script>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务