前端
Javascript
Nodejs
2023-04-14 14:27:33 15阅读
WebSocket链接区别于http协议,他是位于TCP上层的全双工的协议,也就是说服务端可以主动的推送消息给客户端。在一些实时更新数据的场景中比较适用。
koa是nodejs中较为流行服务端框架,经常被用来作为http服务端开发使用,本文就简单介绍一下在koa框架下如何建立WebSocket链接,并且能够在wss链接中获取并使用http服务器中的会话信息。
首先介绍一下我们在项目中使用的一些库。
我们使用koa-session来对用户的会话信息进行管理,然后将koa作为外部的http服务器,将wss链接和http的服务域做成一致的。然后在wss链接中获取用户会话信息进行业务操作。
1. 配置会话
我们创建koa服务器实例之后,使用koa-session的中间件进行管理,具体如下
const Koa = require('koa'); const app = new Koa(); const session = require('koa-session'); const CONFIG = { // 具体配置 app.use(session(CONFIG, app));
2. wss服务器使用外部http服务器
ws可以创建ws的服务器,使用区别于http的端口和路径,为了复用http的端口,ws需要配置额外的服务器。如下:
const http = require('http'); // 如果是https则引入https模块 const server = http.createServer(app.callback()); // app是koa的服务器实例 const wss = new WebSocket.Server({ clientTracking: false, noServer: true }); //不使用自身的server,使用外部http服务器
3. 在ws链接中获取用户会话信息
在外部的http服务器中监听ws链接,并识别用户会话信息,然后再处理后续业务。
server.on('upgrade', function (request, socket, head) { // console.log('Parsing session from request...'); const context = app.createContext(request, {}); // context.session里面就是上下文的会话信息。可以用来识别用户是否登录 if (!context.session.isLoggedIn) { console.log('尚未登录,请先登录'); socket.destroy(); return; wss.handleUpgrade(request, socket, head, function (ws) { wss.emit('connection', ws, request); wss.on('connection', function connection(ws, request) { const context = app.createContext(request, {}); ws.on('message', function incoming(e) { // 接收到message,然后进行业务处理 主要的核心就是koa的app提供一个由request来获取上下文信息的接口。即 app.createContext(requst, {})。在request里面有客户端发送请求时携带的cookie信息。app就可以基于cookie获取用户的上下文会话。 本文主要描述了如何实施wss服务器使用koa作为外部的http服务器,复用http的端口,然后在ws的链接中获取上下文会话信息。其核心有两个,1是在创建ws服务器时配置使用外部的http服务器,2是在ws链接中使用app的createContext接口获取客户端上下文会话。 复用http端口的好处是客户端新建wss链接时不需要考虑跨域,而且可以获取用户的会话信息,在ws链接中进行更加复杂的业务处理。
主要的核心就是koa的app提供一个由request来获取上下文信息的接口。即 app.createContext(requst, {})。在request里面有客户端发送请求时携带的cookie信息。app就可以基于cookie获取用户的上下文会话。
本文主要描述了如何实施wss服务器使用koa作为外部的http服务器,复用http的端口,然后在ws的链接中获取上下文会话信息。其核心有两个,1是在创建ws服务器时配置使用外部的http服务器,2是在ws链接中使用app的createContext接口获取客户端上下文会话。
复用http端口的好处是客户端新建wss链接时不需要考虑跨域,而且可以获取用户的会话信息,在ws链接中进行更加复杂的业务处理。
0 0 0 微信扫码分享
0 评论 <span class="el-input__count">0/1000</span></div> <div class="flex-end mt20"><button disabled="disabled" type="button" class="el-button el-button--danger is-disabled" style=";"><!----><!----><span>发表评论</span></button></div></div></div> </div> <div class="mobile-block"><div class="comment flex-sb"><span>评论(0)</span> <span class="comment-text flex-start cp"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNyAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xOC43NjE5IDEuNDczOTFMMjUuMjQ4NyA3Ljk2MDY2TDI2LjY2MjkgNi41NDY0NUwyMC4xNzYxIDAuMDU5NjkyNEwxOC43NjE5IDEuNDczOTFaIiBmaWxsPSIjREYwNjI5Ii8+DQo8cGF0aCBkPSJNMS43MDIzOCAyNS43MjY1TDguOTI4MyAyNC4yODEzTDIzLjUyMzUgOS42ODYwOUwxNy4wMzY3IDMuMTk5MzNMMi40NDE1NCAxNy43OTQ1TDAuOTk2MzYgMjUuMDIwNUMwLjkxMjM5MyAyNS40NDAzIDEuMjgyNTUgMjUuODEwNCAxLjcwMjM4IDI1LjcyNjVaIiBmaWxsPSIjREYwNjI5Ii8+DQo8L3N2Zz4NCg==" class="write mr9"/>发表评论 </span></div> <div class="comment-panel flex-sb-uncenter" style=";"><img src="" class="m-avatar m-mr16"/> <div class="comment-textarea"><div class="el-textarea"><textarea autocomplete="off" placeholder="请写下您的评论..." maxlength="1000" class="el-textarea__inner"/><span class="el-input__count">0/1000</span></div> <div class="flex-end mt20"><button disabled="disabled" type="button" class="el-button el-button--danger is-disabled m-btn"><!----><!----><span>发表评论</span></button></div></div></div> </div> <div data-v-bc3b616a=""/> <div><div class="el-dialog__wrapper dialog-container" style=";"><div role="dialog" aria-modal="true" aria-label="提示" class="el-dialog" style="margin-top:15vh;width:30%;"><div class="el-dialog__header"><span class="el-dialog__title">提示</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"/></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer"><!----> <button type="button" class="el-button dialog-btn el-button--default"><!----><!----><span>确 定</span></button></span></div></div></div> <div data-v-bc3b616a=""/></div> <div><div class="el-dialog__wrapper dialog-container" style=";"><div role="dialog" aria-modal="true" aria-label="提示" class="el-dialog" style="margin-top:15vh;width:30%;"><div class="el-dialog__header"><span class="el-dialog__title">提示</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"/></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer"><!----> <button type="button" class="el-button dialog-btn el-button--default"><!----><!----><span>确 定</span></button></span></div></div></div> <div data-v-bc3b616a=""/></div></div></div> <div class="el-col el-col-6" style="padding-left:10px;padding-right:10px;"><div class="popular-module"><div class="popular-panel introduce"><label class="label-box flex-sb"><div class="label-text"><img src="/developer/_nuxt/img/start.a68dc92.png" style="width:28px;height:28px;vertical-align:sub;"/> <span>作者简介</span></div></label> <div class="info-box"><a href="/developer/author/406399483355205"><img src="https://www.ctyun.cn/share/q04sv38ZSzTBF4mEHo-3dVsyWITNHb2AHhoKmmcfMQvFLURsx3V4aSkOuRaeJwzV_gWW6KsOfQzljF83BOvXCZNVswU6LTNzn3p6hW0K2SP1gAmiyqGjdKn4Ng6vnf7O" class="author-avatar" style="width:120px;height:120px;border-radius:50%;"/></a> <p class="nickname"><a href="/developer/author/406399483355205">徐****勇</a></p> <div class="info-panel flex-sb"><div class="info-panel-item"><p>文章数</p> <a href="/developer/author/406399483355205" class="clickableText">2</a></div> <div class="info-panel-item"><p>点赞数</p> <a href="/developer/author/406399483355205" class="clickableText">2</a></div> <div class="info-panel-item"><p>粉丝数</p> <a href="/developer/author/406399483355205?tab=关注&subTab=Ta的粉丝" class="clickableText">2</a></div></div> <div class="flex-sb"><div class="follow-btn"><span>关注</span></div> <!----> <div class="column-btn"><a href="/developer/column/406411025252421">专栏</a></div></div></div></div> <div class="popular-panel"><label class="label-box flex-sb"><div class="label-text"><img src="/developer/_nuxt/img/start.a68dc92.png" style="width:28px;height:28px;vertical-align:sub;"/> <span>Ta热门文章</span></div> <a href="/developer/author/406399483355205" class="more check-more">查看更多</a></label> <div class="info-box article-list"><div class="article-item"><p class="ellipsis-multiline" style="text-align:left;"><a href="/developer/article/406404426686533" target="_blank">富文本防xss注入以及分级策略 </a></p></div><div class="article-item"><p class="ellipsis-multiline" style="text-align:left;"><a href="/developer/article/406765743943749" target="_blank">在KOA中建立共享会话的WebSocket链接 </a></p></div></div></div></div></div></div></div></div> <div><div class="card-body"><div class="m-article-user-card"><a href="/developer/author/406399483355205"><img src="https://www.ctyun.cn/share/q04sv38ZSzTBF4mEHo-3dVsyWITNHb2AHhoKmmcfMQvFLURsx3V4aSkOuRaeJwzV_gWW6KsOfQzljF83BOvXCZNVswU6LTNzn3p6hW0K2SP1gAmiyqGjdKn4Ng6vnf7O" alt="徐****勇" class="m-avatar"/></a> <div class="m-author-info"><h3 class="m-nickname">徐****勇</h3> <div class="m-other-info"><span class="m-mr8"><span class="m-mr8">2</span> </span></div></div> <div class="m-btn active"><span>关注</span></div> <!----></div> <div class="card-box m-card-box"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANcSURBVHgB1Zo9bBNBEIVn9xwBjaMIQWVAkaAJFEg0Fl0aBFVSRIKKgsI1RfrEqVO4TkENEgU0gFJAAygNkgtIA0WAVPxI4IoQ+5Z546y5WLZ378f23ZOS2Htr530383bXUdTBz89ryph1yrMUNfl7s6NN/dTc/N7xS6xCQFgp1ZjRYV3Nzf+Sp3a8WBDUnNFmERDajp04faFulFqnIsjQ1cNQr+Gh6r9WpEp0jFnU/YNFqkRJ6yU96MI4IfSHx6S+7VIWMsYsq1ETsm4nmNdvG3yHytS5uUnm7AKllXJNyArCmm/ffijPS09qmUBo14Qs2ilqPnjPj/mrvbxFwYvV1O3kBIDSQARsXL970DOvPm1L2QFhzixQ6dGdVBBeAFBcCPV7X8wR/4yaN+UKda7dEwj1fbd7LUUlSnEmA4IzQa5MBK82xKz0+Llqd5BBwssrFF66QcHzVerc2qQAEDwP7ZQ0E84QD5Iz2K19WWlglE6Wif60KOS7Lm1zvkohQwUvN7oQDItWApj+uC3zxg7gBYE3R1sctIhmK9I6CLO9+xZCMSwqQHw9ibwz0C+fTKAdFANY81iJDmuvSX3Z6WbCYR6vdSlxBaxclcAqpL7uSFshsAi3/GIeC6+s9MzLBmdN8VxAot2Qi1GKFeJBcgW7c/2+rDaoAnJB3FZorZDHBwnzzEXOA88NPQKduIWicrUTQirmhwhV0VyRgFck4myg9Qzme+QiEwAozj5hZv8bg3nsA20OdpvbpfS0JmO21eycYUqdgX7FOTtFzfeywLu23a2xWuk3DQFGy2EhMJXq8RtAY5DXEhsxL3ecW0h2ZzYpBz4GwpIbNd87DEZaK7MWisprieUNTlYbQ93dmnueH1L77jNv89BYKmDlqgRWoxKqsLR19IKWBNjXvLwHjVm+EHL3OcSKK4EMyNHDYV5eTxOQMxN2x40stT7mZR5NQM5MHBkP+EQKGF/z0EQqYOWqBE6rOHoYduVjHpooAOR7FB+1c0c1cQAoy792TAUAygpiagBQFhBTBYDSQkwdAEoDkQsAKClEbgCgJBC5AoDiQuQOAIr1oYhyKl+I3AJAXp/sKOdyfp6gAmgURCEAoGEQhQGABkEUCgAq1H8UDBMg/v7YM/iiospCUJEFiH9vzj0szJkB7wAAAABJRU5ErkJggg==" class="original" style="display:;"/> <h1>在KOA中建立共享会话的WebSocket链接</h1> <p class="page-text m-fs24"><span class="mr15"> 2023-04-14 14:27:33 </span> <span> 15阅读 </span></p> <div><div class="detail-content tinymce-wrap"><div id="articleDetailData-articleText" class="detailClass"><h4 class="line">概念介绍</h4> <p class="line">WebSocket链接区别于http协议,他是位于TCP上层的全双工的协议,也就是说服务端可以主动的推送消息给客户端。在一些实时更新数据的场景中比较适用。</p> <p class="line">koa是nodejs中较为流行服务端框架,经常被用来作为http服务端开发使用,本文就简单介绍一下在koa框架下如何建立WebSocket链接,并且能够在wss链接中获取并使用http服务器中的会话信息。</p> <h4 class="line">基础工具介绍</h4> <p class="line">首先介绍一下我们在项目中使用的一些库。</p> <li>用户会话管理中间件<a href="https://www.ctyun.cn/portal/link.html?target=https%3A%2F%2Fgithub.com%2Fkoajs%2Fsession">koa-session</a></li> <li>ws的nodejs库<a href="https://www.ctyun.cn/portal/link.html?target=https%3A%2F%2Fgithub.com%2Fwebsockets%2Fws">ws</a></li> <li>ws设置外部http服务器所需模块<a href="https://www.ctyun.cn/portal/link.html?target=https%3A%2F%2Fnodejs.org%2Fapi%2Fhttp.html%23http_http_createserver_options_requestlistener">http</a></li> <p class="line">我们使用koa-session来对用户的会话信息进行管理,然后将koa作为外部的http服务器,将wss链接和http的服务域做成一致的。然后在wss链接中获取用户会话信息进行业务操作。</p> <p class="line"><strong>1. 配置会话</strong></p> <p class="line">我们创建koa服务器实例之后,使用koa-session的中间件进行管理,具体如下</p> <pre class="language-javascript"><code>const Koa = require('koa'); const app = new Koa(); const session = require('koa-session'); const CONFIG = { // 具体配置 app.use(session(CONFIG, app));</code></pre> <p class="line"><strong>2. wss服务器使用外部http服务器</strong></p> <p class="line">ws可以创建ws的服务器,使用区别于http的端口和路径,为了复用http的端口,ws需要配置额外的服务器。如下:</p> <pre class="language-javascript"><code>const http = require('http'); // 如果是https则引入https模块 const server = http.createServer(app.callback()); // app是koa的服务器实例 const wss = new WebSocket.Server({ clientTracking: false, noServer: true }); //不使用自身的server,使用外部http服务器</code></pre> <p class="line"><strong>3. 在ws链接中获取用户会话信息</strong></p> <p class="line">在外部的http服务器中监听ws链接,并识别用户会话信息,然后再处理后续业务。</p> <pre class="language-javascript"><code>server.on('upgrade', function (request, socket, head) { // console.log('Parsing session from request...'); const context = app.createContext(request, {}); // context.session里面就是上下文的会话信息。可以用来识别用户是否登录 if (!context.session.isLoggedIn) { console.log('尚未登录,请先登录'); socket.destroy(); return; wss.handleUpgrade(request, socket, head, function (ws) { wss.emit('connection', ws, request); wss.on('connection', function connection(ws, request) { const context = app.createContext(request, {}); ws.on('message', function incoming(e) { // 接收到message,然后进行业务处理 <p>主要的核心就是koa的app提供一个由request来获取上下文信息的接口。即 <a href="https://www.ctyun.cn/portal/link.html?target=https%3A%2F%2Fgithub.com%2Fkoajs%2Fkoa%2Fblob%2Fmaster%2Flib%2Fapplication.js%23L177">app.createContext(requst, {})</a>。在request里面有客户端发送请求时携带的cookie信息。app就可以基于cookie获取用户的上下文会话。</p> <p class="line">本文主要描述了如何实施wss服务器使用koa作为外部的http服务器,复用http的端口,然后在ws的链接中获取上下文会话信息。其核心有两个,1是在创建ws服务器时配置使用外部的http服务器,2是在ws链接中使用app的createContext接口获取客户端上下文会话。</p> <p class="line">复用http端口的好处是客户端新建wss链接时不需要考虑跨域,而且可以获取用户的会话信息,在ws链接中进行更加复杂的业务处理。</p> </span></div></div> <button type="button" class="el-button m-btn active el-button--default"><!----><!----><span><span>订阅</span></span></button> <!----></div></div></div> <div id="mobile-comment" class="card-box mt20 m-article-detail-comments"><div class="pc-block"><div class="comment flex-sb"><span class="data">0 评论</span></div> <div class="comment-panel flex-sb-uncenter"><img src="" class="mr20" style="width: 56px; height: 56px; border-radius: 50%;"/> <div class="comment-textarea"><div class="el-textarea"><textarea autocomplete="off" placeholder="请写下您的评论..." maxlength="1000" class="el-textarea__inner"/><span class="el-input__count">0/1000</span></div> <div class="flex-end mt20"><button disabled="disabled" type="button" class="el-button el-button--danger is-disabled" style=";"><!----><!----><span>发表评论</span></button></div></div></div> </div> <div class="mobile-block"><div class="comment flex-sb"><span>评论(0)</span> <span class="comment-text flex-start cp"><img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjciIGhlaWdodD0iMjYiIHZpZXdCb3g9IjAgMCAyNyAyNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xOC43NjE5IDEuNDczOTFMMjUuMjQ4NyA3Ljk2MDY2TDI2LjY2MjkgNi41NDY0NUwyMC4xNzYxIDAuMDU5NjkyNEwxOC43NjE5IDEuNDczOTFaIiBmaWxsPSIjREYwNjI5Ii8+DQo8cGF0aCBkPSJNMS43MDIzOCAyNS43MjY1TDguOTI4MyAyNC4yODEzTDIzLjUyMzUgOS42ODYwOUwxNy4wMzY3IDMuMTk5MzNMMi40NDE1NCAxNy43OTQ1TDAuOTk2MzYgMjUuMDIwNUMwLjkxMjM5MyAyNS40NDAzIDEuMjgyNTUgMjUuODEwNCAxLjcwMjM4IDI1LjcyNjVaIiBmaWxsPSIjREYwNjI5Ii8+DQo8L3N2Zz4NCg==" class="write mr9"/>发表评论 </span></div> <div class="comment-panel flex-sb-uncenter" style=";"><img src="" class="m-avatar m-mr16"/> <div class="comment-textarea"><div class="el-textarea"><textarea autocomplete="off" placeholder="请写下您的评论..." maxlength="1000" class="el-textarea__inner"/><span class="el-input__count">0/1000</span></div> <div class="flex-end mt20"><button disabled="disabled" type="button" class="el-button el-button--danger is-disabled m-btn"><!----><!----><span>发表评论</span></button></div></div></div> </div> <div data-v-bc3b616a=""/> <div><div class="el-dialog__wrapper dialog-container" style=";"><div role="dialog" aria-modal="true" aria-label="提示" class="el-dialog" style="margin-top:15vh;width:30%;"><div class="el-dialog__header"><span class="el-dialog__title">提示</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"/></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer"><!----> <button type="button" class="el-button dialog-btn el-button--default"><!----><!----><span>确 定</span></button></span></div></div></div> <div data-v-bc3b616a=""/></div> <div><div class="el-dialog__wrapper dialog-container" style=";"><div role="dialog" aria-modal="true" aria-label="提示" class="el-dialog" style="margin-top:15vh;width:30%;"><div class="el-dialog__header"><span class="el-dialog__title">提示</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"/></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer"><!----> <button type="button" class="el-button dialog-btn el-button--default"><!----><!----><span>确 定</span></button></span></div></div></div> <div data-v-bc3b616a=""/></div></div> <div class="m-toolbar-container"><div class="m-top-border"/> <ul class="m-toolbar"><li class="m-toolbar-item"><div class="m-toolbar-icon m-toolbar-icon-dislike"><div class="m-toolbar-item-badge">0</div></div> <div class="m-toolbar-item-text">点赞</div></li> <li class="m-toolbar-item"><div class="m-toolbar-icon m-toolbar-icon-collect"><div class="m-toolbar-item-badge">0</div></div> <div class="m-toolbar-item-text">收藏</div></li> <li class="m-toolbar-item"><div class="m-toolbar-icon m-toolbar-icon-comment"><div class="m-toolbar-item-badge">0</div></div> <div class="m-toolbar-item-text">评论</div></li></ul></div> <div class="el-dialog__wrapper columnSubscribe-wrap" style=";"><div role="dialog" aria-modal="true" aria-label="专栏订阅" class="el-dialog" style="margin-top:15vh;width:380px;"><div class="el-dialog__header"><span class="el-dialog__title">专栏订阅</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"/></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer"><button type="button" class="el-button btn-w88 el-button--default"><!----><!----><span>取 消</span></button> <button type="button" class="el-button btn-w88 el-button--default" style="background:#df0629;color:#fff;"><!----><!----><span> </span></button></span></div></div></div></div></div> <div data-v-bc3b616a=""/></div></div> <div class="response-wrapper cty-layout-footer-banner hideInSmallScreen" data-v-5aa7d7ab="" data-v-52cc7f60="" data-v-3708b33a=""><div data-v-5aa7d7ab=""><div style="display:;" data-v-5aa7d7ab=""> <section class="cty-layout-open-footer-banner -layout-open-footer-banner isShow" data-v-5aa7d7ab="" data-v-52cc7f60=""><div data-fetch-key="4" style="height:100px;position:relative;" data-v-52cc7f60=""><div class="cty-layout-carousel-list"><a href="https://www.ctyun.cn/activity/2022/regular/invitation" target="_blank" class="cty-layout-carousel-item" style="background:#FFFFFF;display:;"><div index="0" class="cty-layout-carousel-item-container animation-normal bg-slideIn active"><div class="cty-layout-carousel-item-bg" style="background-image:url('https://www.ctyun.cn/s/q04sv38ZSzTBF4mEHo-3dVsyWITNHb2AHhoKmmcfMQvFLURsx3V4aUR26W8PQUqCZLiLtJ4wqeDIR4ptdOS9Vx6vJ8eIl9GCFvsiB8BbIGaFz_TPP8FfRddLJaCyZHeBXWsC1L62ycv_5Bw-cig8-A');"/> <div class="cty-layout-carousel-item-text">推荐助力领好礼 邀请好友完成推荐任务 最高可得千元电信卡</div> <span class="button">查看详情</span></div></a></div> <!----> <!----></div></section></div></div> <!----></div> <div data-fetch-key="5" class="cty-layout-openfooter-wrapper cty-layout-footer hideInSmallScreen" data-v-5968d8ab="" data-v-3708b33a=""><div class="response-wrapper" data-v-5aa7d7ab="" data-v-5968d8ab=""><div data-v-5aa7d7ab=""><div style="display:;" data-v-5aa7d7ab=""> <div data-fetch-key="6" data-v-7b4f81c7="" data-v-5968d8ab=""><section class="cty-layout-openfooter" data-v-7b4f81c7=""><div class="service-box" data-v-7b4f81c7=""><ul data-v-7b4f81c7=""><li style="width:320px;" data-v-7b4f81c7=""><a href="/ctyun/services-request" target="_blank" data-v-7b4f81c7=""><img src="/developer/_nuxt/img/aftersale.02fb85c.svg" class="img-icon" data-v-7b4f81c7=""/> <span data-v-7b4f81c7="">7*24小时售后</span></a></li><li style="width:320px;" data-v-7b4f81c7=""><a href="/ctyun/help-refund" target="_blank" data-v-7b4f81c7=""><img src="/developer/_nuxt/img/refund.2254c50.svg" class="img-icon" data-v-7b4f81c7=""/> <span data-v-7b4f81c7="">无忧退款</span></a></li><li style="width:320px;" data-v-7b4f81c7=""><a href="/ctyun/record" target="_blank" data-v-7b4f81c7=""><img src="/developer/_nuxt/img/record.699e13d.svg" class="img-icon" data-v-7b4f81c7=""/> <span data-v-7b4f81c7="">免费备案</span></a></li><li style="width:320px;" data-v-7b4f81c7=""><a href="https://www.ctyun.cn/more/supportplans" target="_blank" data-v-7b4f81c7=""><img src="/developer/_nuxt/img/expert.876c5a9.svg" class="img-icon" data-v-7b4f81c7=""/> <span data-v-7b4f81c7="">专家服务</span></a></li></ul></div> <div class="middle" data-v-7b4f81c7=""><div class="qrcode-box" data-v-7b4f81c7=""><div class="zixun" data-v-7b4f81c7=""><div data-v-7b4f81c7="">售前咨询热线</div> <div class="phone" data-v-7b4f81c7="">400-810-9889转1</div></div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><div class="img-box" data-v-7b4f81c7=""><img src="/developer/_nuxt/img/app-qrcode.2c77c24.png" data-v-7b4f81c7=""/></div> 天翼云APP 微信公众号 </li></ul></div> <div class="menu-box" data-v-7b4f81c7=""><div class="menu-col" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">服务与支持</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/record2/index" target="_blank" data-v-7b4f81c7="">备案中心</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/contactus/" target="_blank" data-v-7b4f81c7="">售前咨询</a></li><li data-v-7b4f81c7=""><a href="https://ocss.ctyun.cn/ucfront/uc_channel_access/webchat/pages/robot.html" target="_blank" data-v-7b4f81c7="">智能客服</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/help2/selfhelp" target="_blank" data-v-7b4f81c7="">自助服务</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/wsc/worksheet/list" target="_blank" data-v-7b4f81c7="">工单管理</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/notice" target="_blank" data-v-7b4f81c7="">客户公告</a></li></ul></div><div class="menu-col" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">账户管理</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/console" target="_blank" data-v-7b4f81c7="">管理中心</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/bcc/order" target="_blank" data-v-7b4f81c7="">订单管理</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/console/account/balance/detail" target="_blank" data-v-7b4f81c7="">余额管理</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/console/account/invoice" target="_blank" data-v-7b4f81c7="">发票管理</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/console/account/balance/recharge" target="_blank" data-v-7b4f81c7="">充值汇款</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/console/resource/renew" target="_blank" data-v-7b4f81c7="">续费管理</a></li></ul></div><div class="menu-col" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">快速入口</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/document/" target="_blank" data-v-7b4f81c7="">文档中心</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/activity/index" target="_blank" data-v-7b4f81c7="">最新活动</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/activity/enterprise2" target="_blank" data-v-7b4f81c7="">免费试用</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/activity/security2" target="_blank" data-v-7b4f81c7="">安全专区</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/trust/" target="_blank" data-v-7b4f81c7="">信任中心</a></li><li data-v-7b4f81c7=""><a href="https://edu.ctyun.cn/" target="_blank" data-v-7b4f81c7="">天翼云学堂</a></li></ul></div><div class="menu-col" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">云网生态</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://market.ctyun.cn/market/home/mall" target="_blank" data-v-7b4f81c7="">甄选商城</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/cooperation2/channel" target="_blank" data-v-7b4f81c7="">渠道合作</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/cooperation2/market" target="_blank" data-v-7b4f81c7="">云市场合作</a></li></ul></div><div class="menu-col" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">了解天翼云</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/about/" target="_blank" data-v-7b4f81c7="">关于天翼云</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/more/app" target="_blank" data-v-7b4f81c7="">天翼云APP</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/cases/" target="_blank" data-v-7b4f81c7="">服务案例</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/newsboard/" target="_blank" data-v-7b4f81c7="">新闻资讯</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/h5/contactus/" target="_blank" data-v-7b4f81c7="">联系我们</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/ctyun/51job" target="_blank" data-v-7b4f81c7="">校园招聘</a></li></ul></div></div> <div class="middle-sep" data-v-7b4f81c7=""/></div> <div class="recomend-box" data-v-7b4f81c7=""><div class="recomend-row" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">热门产品</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/ecs" target="_blank" data-v-7b4f81c7="">弹性云主机</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/accessone" target="_blank" data-v-7b4f81c7="">边缘安全加速平台</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/tyydn" target="_blank" data-v-7b4f81c7="">天翼云电脑</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/tyysj" target="_blank" data-v-7b4f81c7="">天翼云手机</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/rdsmysql" target="_blank" data-v-7b4f81c7="">关系型数据库</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/oos" target="_blank" data-v-7b4f81c7="">对象存储</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/yyp" target="_blank" data-v-7b4f81c7="">云硬盘</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/waf" target="_blank" data-v-7b4f81c7="">Web应用防火墙</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/fwqaqws" target="_blank" data-v-7b4f81c7="">服务器安全卫士</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/tyybg" target="_blank" data-v-7b4f81c7="">天翼云办公</a></li></ul></div><div class="recomend-row" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">热门推荐</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/yffbf" target="_blank" data-v-7b4f81c7="">云服务备份</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/mds" target="_blank" data-v-7b4f81c7="">云空间</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/icdn" target="_blank" data-v-7b4f81c7="">全站加速</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/scdn" target="_blank" data-v-7b4f81c7="">安全加速</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/iStack" target="_blank" data-v-7b4f81c7="">超融合服务-iStack</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/ecx" target="_blank" data-v-7b4f81c7="">智能边缘云</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/aos" target="_blank" data-v-7b4f81c7="">应用编排服务</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/cse" target="_blank" data-v-7b4f81c7="">微服务引擎</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/sdp" target="_blank" data-v-7b4f81c7="">共享流量包</a></li></ul></div><div class="recomend-row" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">更多推荐</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/waf" target="_blank" data-v-7b4f81c7="">web应用防火墙</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/kms" target="_blank" data-v-7b4f81c7="">密钥管理</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/dbzx" target="_blank" data-v-7b4f81c7="">等保咨询</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/aqzq" target="_blank" data-v-7b4f81c7="">安全专区</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/aom" target="_blank" data-v-7b4f81c7="">应用运维管理</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/lts" target="_blank" data-v-7b4f81c7="">云日志服务</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/ywrh" target="_blank" data-v-7b4f81c7="">云网融合</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/es" target="_blank" data-v-7b4f81c7="">云搜索服务</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/dli" target="_blank" data-v-7b4f81c7="">数据湖探索</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/products/dws" target="_blank" data-v-7b4f81c7="">数据仓库服务</a></li></ul></div><div class="recomend-row" data-v-7b4f81c7=""><div class="title" data-v-7b4f81c7="">友情链接</div> <ul data-v-7b4f81c7=""><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/ctyun/pan" target="_blank" data-v-7b4f81c7="">天翼云盘</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/ctyun/bpan" target="_blank" data-v-7b4f81c7="">天翼企业云盘</a></li><li data-v-7b4f81c7=""><a href="https://www.ctyun.cn/ctyun/email" target="_blank" data-v-7b4f81c7="">189邮箱</a></li><li data-v-7b4f81c7=""><a href="http://www.chinatelecom.com.cn/" target="_blank" data-v-7b4f81c7="">中国电信集团</a></li></ul></div></div> <div class="link-box" data-v-7b4f81c7=""><div data-v-7b4f81c7=""> ©2023 <a href="/ctyun/beian-gov" data-v-7b4f81c7="">京ICP备 2021034386号</a> 增值电信业务经营许可证A2.B1.B2-20090001 公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室 7*24小时不间断售后保障 400-810-9889