前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >敲黑板|云帮WebSocket那点事

敲黑板|云帮WebSocket那点事

作者头像
Rainbond开源
发布2018-05-31 13:32:22
1.2K0
发布2018-05-31 13:32:22
举报

场景说明

本次教程的应用场景主要针对云帮201704之前版本的云帮系统。本教程针对安装在阿里云等云服务商上且有公网需求的用户云帮201704版本已经对此进行了优化,不需要配置。

WebSocket原理及应用思路

WebSocket它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的,与HTTP一样基于已建立的TCP连接来传输数据,但是它和HTTP最大不同是:WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端和客户端都能主动向对方发送或接收数据,就像Socket一样;WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信。

属于Web领域的实时推送技术,目的让用户不刷新浏览器就可以实时更新,其应用场景为在线聊天、在线客服、WebIM之类的。 云帮使用WebSocket服务主要如下:

  • 实时消息 推送实时日志信息及监控数据信息
  • 交互消息 通过Web浏览器操作容器等

访问:ws://ip:port

其大概格式如下:

代码语言:javascript
复制
Request Method:GET
Status Code:101 Switching Protocols
Connection:upgrade
Date:Thu, 20 Apr 2017 03:29:52 GMT
Sec-WebSocket-Accept:KdMf2rUedrfWuYlzXh+Nsr1J4pA=
Server:nginx/1.10.1
Upgrade:websocket

接下来就具体说说云帮如何修改websocket服务

云帮WebSocket服务

实时消息

如何配置公网环境下的实时消息的WebSocket服务。

1.修改docker-compose.yaml端口映射

最新版本默认设置了.4月之前的版本可以 编辑管理节点 /etc/goodrain/docker-compose.yaml 文件,找到mpush段落, 在ports后添加一行

代码语言:javascript
复制
mpush:
  container_name: mpush
  environment:
  - ZMQ_SUB_FROM=tcp://10.*.*.*:9242
  image: hub.goodrain.com/dc-deploy/mpush
  log_driver: json-file
  log_opt:
    max-size: 50m
  ports:
  - 0.0.0.0:6060:6060
  restart: always

如有其他特殊要求可以根据如下自行选择:

代码语言:javascript
复制
ports:
    - "<privite_ip>:6060:6060"
    - "<public_ip>:6060:6060"

修改完以后重建容器

代码语言:javascript
复制
dc-compose up -d
2.更改云帮web配置文件

云帮默认URL地址为内网地址。

编辑/etc/goodrain/console.py 文件,找到WEBSOCKET_URL, 更改为云帮的内网或者外网IP

代码语言:javascript
复制
WEBSOCKET_URL = {
    'cloudbang': 'ws://<ip>:6060/websocket',
}

重启console容器

代码语言:javascript
复制
dc-compose restart console

交互信息

最新版本默认已经设置了。

1.修改console配置文件

编辑/etc/goodrain/console.py 文件,找到DOCKER_WSS_URL, 更改为云帮的内网或者外网IP

代码语言:javascript
复制
DOCKER_WSS_URL = {
    'is_wide_domain': True,
    'type': 'ws',
    'cloudbang':'<ip>:8188',
}

这里写的是内网IP,如果云帮是安装在远程,通过公网连接,可以写外网IP地址。 修改完重启console容器

代码语言:javascript
复制
dc-compose restart console
2.修改nginx配置

编辑 /etc/nginx/sites-enabled/webconsole 文件

代码语言:javascript
复制
...
server {
    listen <ip>:8188;
    server_name webconsole.goodrain.me;
   ...
    }

ip设置为内网ip,或者省略不写ip

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rainbond 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景说明
  • WebSocket原理及应用思路
  • 云帮WebSocket服务
  • 实时消息
    • 1.修改docker-compose.yaml端口映射
      • 2.更改云帮web配置文件
      • 交互信息
        • 1.修改console配置文件
          • 2.修改nginx配置
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档