当前位置: 首页 > news >正文

阿里云服务器做电影网站wordpress手机菜单分行

阿里云服务器做电影网站,wordpress手机菜单分行,做什么网站比较简单,wordpress 图片响应式最近公司需要无感知基于服务代号来实现通信, 并监控和管理通信连接#xff0c;目前公司使用的是如下的逻辑(当然逻辑简化了#xff0c;但是思想不变) 目录 简单的原理图代理服务的实现创建 tls tcp 服务, 用于grpc client 和 grpc service 通信保存 与 代理服务建立的 grpc …最近公司需要无感知基于服务代号来实现通信, 并监控和管理通信连接目前公司使用的是如下的逻辑(当然逻辑简化了但是思想不变) 目录 简单的原理图代理服务的实现创建 tls tcp 服务, 用于grpc client 和 grpc service 通信保存 与 代理服务建立的 grpc service 的连接保存 grpc client dial 的连接client 连接上了的时候告诉 tcp server, 要连接哪个 grpc service从 保存的conn 中查询是否有 相关的连接如果有则 通过 io.Copy 来让grpc client 与 grpc service 通信 代码地址 简单的原理图 代理服务的实现 创建 tls tcp 服务, 用于grpc client 和 grpc service 通信 func Run() error {// 创建 CA证书 用于 tls 连接ca, err : private_keys.NewCA(127.0.0.1)if err ! nil {log.Fatal(err)}serverCA, err : tls.X509KeyPair(ca.CertPem(), ca.KeyPem())if err ! nil {log.Fatal(err)}tlsServerConfig : tls.Config{Certificates: []tls.Certificate{serverCA},}// 创建 带 tls 的tcp服务listener, err : tls.Listen(tcp, fmt.Sprintf(:%d, Port), tlsServerConfig)if err ! nil {log.Printf(Error tcp listening on port %d: %v\n, Port, err)return err}fmt.Println(TCP Listening on port , Port, ; successfully)for {conn, err : listener.Accept()if err ! nil {log.Printf(Error accepting connection: %v\n, err)return err}fmt.Println(tcp new connection)// 处理请求go forwardCommunication(conn)}return nil }func forwardCommunication(conn net.Conn) error {// 首次连接上的时候通信告诉 tcp server 是客户端连接还是服务端连接bufBytes, err : ReadData(conn)if err ! nil {return err}device : Device{}err json.Unmarshal(bufBytes, device)if err ! nil {log.Printf(Error unmarshalling json: %v\n, err)return err} }保存 与 代理服务建立的 grpc service 的连接 func server(deviceID string, conn net.Conn) error {sendData, err : json.Marshal(OK{Code: 1})if err ! nil {log.Printf(Error marshalling json: %v\n, err)return err}sendData append(sendData, )_, err conn.Write(sendData)if err ! nil {log.Printf(Error writing to connection: %v\n, err)return err}// 保存 grpc 服务的 dial connectsetConnMap(deviceID, conn)return nil }保存 grpc client dial 的连接 client 连接上了的时候告诉 tcp server, 要连接哪个 grpc service 从 保存的conn 中查询是否有 相关的连接 如果有则 通过 io.Copy 来让grpc client 与 grpc service 通信 func client(deviceID string, conn net.Conn) error {toConn : GetConn(deviceID)successCode : 0if toConn nil {successCode -1}sendData, _ : json.Marshal(OK{Code: successCode})_, err : conn.Write(append(sendData, MessageEnd))if err ! nil {log.Printf(Error writing to connection: %v\n, err)}if successCode 0 {conn.Close()return err}go func() {_, err : io.Copy(toConn, conn)if err ! nil {log.Printf(client toConn error reading from connection: %v\n, err)}log.Printf(toConn conn closed.\n)return}()go func() {_, err : io.Copy(conn, toConn)if err ! nil {log.Printf(client conn error reading from connection: %v\n, err)}log.Printf(conn toConn closed.\n)}()fmt.Println(Client connected to device, deviceID)return nil }代码地址 https://github.com/wanmei002/websocket-reverse-proxy
http://www.hkea.cn/news/14337693/

相关文章:

  • 营销型网站开发指的是什么千图网官网免费图
  • 手机网站建设做竞价推广的技巧短链接在线生成器
  • 活泼风格的网站科技公司的网站
  • 辽宁住房和建设厅网站wordpress crm分销插件
  • 网站模板搭建百姓网二手车个人
  • c 网站开发人员工具seo外包团队
  • 网站建设承揽合同常州营销网站建设
  • 天河网站建设优化天津网站搜索引擎优化
  • 客户对网站设计的要求如何做网站策划案
  • 网页特效源码网站品味雅虎 wordpress主题
  • 网站 扩展做网站公司怎么做
  • 360提交网站深圳vi设计有哪些
  • 网站支付功能建设单页网站排名没有
  • 百度网盘做存储网站室内设计公司排名前50
  • 莱芜新站优化wordpress页面显示分类文章列表
  • 人才微网站开发国家建设部建筑业网站
  • 写作网站wordpress添加广告位
  • 想自己做一个网站应该怎么弄网站主机多大
  • 外贸黄页网站海外购物网站建设
  • 做网站放广告做一个app上架需要多少费用
  • 网站建设 小程序开发青海网站建设免费推广
  • 讯美网站建设做招商网站的前景怎么样
  • 湖南建设门户网站建网站拿到广告
  • 平潭建设局网站wordpress后台 菜单
  • 平台网站做等级保护测评手机中关村在线报价大全
  • 现在什么行业发展前景最好百度seo排名优化公司
  • 重庆做网站那里好登錄wordpress界面
  • logo在线设计生成免费广东seo推广价格
  • 怎样做免费外贸网站中国大宗交易平台
  • 扬中会建网站江门骏科网站建设