// websocket.js

export function initWebsocket(user = {}, userType) {

socketurl = "ws://" + WEBSOKET_URL + "//"

ws = new WebSocket(socketurl);

ws.onopen = function (evt) {

wsReadyState = evt.currentTarget.readyState;

if (wsReadyState == 1) {

//连接好了之后

wsPromise = new Promise((resolve, reject) => {

resolve();

})

wsPromise.then((data) => {

let wsMsgListCopy = [

...wsMsgList

];

wsMsgListCopy.forEach((msg) => {

ws.send(JSON.stringify(msg));

wsMsgList.shift();

})

})

initEventHandle();

}

};

return ws;

}

export function sendMsgByWebsccket(msg, toast, ) {

//发送信息时调用

ws.send(JSON.stringify(msg));

}

function createWebSocket(url) {

try {

ws = new WebSocket(url);

initEventHandle();

} catch (e) {

reconnect(url);

}

}

function initEventHandle() {

ws.onclose = function () {

reconnect(socketurl);

};

ws.onerror = function () {

reconnect(socketurl);

};

}

function reconnect(url) {

if (lockReconnect) return;

lockReconnect = true;

setTimeout(function () {

createWebSocket(url);

lockReconnect = false;

}, 2000);

}

const heartCheck = {

timeout: 10000,

serverTimeoutObj: null,

reset: function () {

clearTimeout(this.serverTimeoutObj);

return this;

},

start: function () {

const self = this;

self.serverTimeoutObj = setTimeout(function () {

ws.close();

createWebSocket(socketurl);

}, self.timeout)

}

}

// index.js

import { initWebsocket } from '../websocket'

componentDidMount() {

console.log('接收数据');

const self = this;

self.ws = initWebsocket(curUser, USER_TYPE);

self.ws.onmessage = (event) => {

const arg = JSON.parse(event.data);

//处理接收的数据

}

}

sccket服务器信息获取,websocket断线后重新new了地址,ws.onmessage没有数据相关推荐

  1. 网狐app端获取服务器信息,获取服务器信息 网狐客户端

    获取服务器信息 网狐客户端 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 帐户 ...

  2. 手机显示获取服务器信息,获取手机服务器

    获取手机服务器 内容精选 换一换 接口名称InstallApkInstallApk功能描述在云手机中安装apk.系统会将指定的apk文件下载后直接安装到云手机中.一次只支持安装一个apk.该接口为异步 ...

  3. samp服务器信息获取,手把手教你写一个简单的服务器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //第八步,玩家杀人得分得金钱,死亡扣分扣金钱 public OnPlayerDeath(playerid, killerid, reason)//玩家被 ...

  4. 酷q服务器信息获取,酷Q获取加群QQ等级的解决方案

    接口地址: http://vip.qq.com/pk/index?param=[要获取等级的QQ] 页面打开之后,接着打开页面代码 一般在第196行可以找到 var GUEST_LEVEL_INFO ...

  5. 水星mw310r虚拟服务器,水星MW310RE扩展成功后如何查看IP地址?

    本文介绍了水星MW310RE扩展成功后,查看扩展器IP地址的方法.水星MW310RE扩展器默认管理地址为melogin.cn或192.168.1.253,但是扩展器成功后,其管理IP地址由前端主路由器 ...

  6. 获取微信推文的实际链接地址(包含JSON数据以及推文msg_data_id)

    前提: 现在随着公众平台的要求越来越多,搜狗微信的爬虫难度越来越高,很多爬虫都没有用了,但是现在很多业务还是要用到历史推文的一些数据,其实很多数据(阅读量.点赞数.封面图片地址.标题.简介)都可以用过 ...

  7. 怎么获取别人服务器信息失败,获取服务器信息失败

    获取服务器信息失败 内容精选 换一换 1.若希望以主席身份入会,enter_code必须传入主席密码.若希望以来宾身份入会,当会议要求来宾密码时,enter_code必须传入来宾密码,会议不要求来宾密 ...

  8. 购买弹性云服务器怎么部署网站,购买后怎么部署自己的云服务器

    购买后怎么部署自己的云服务器 内容精选 换一换 SSL证书对部署的服务器没有任何限制,无论是华为云或其他云厂商的服务器,还是线下云服务器.获取证书文件后,您可根据自己的需求将SSL证书部署到网站对应的 ...

  9. 日历服务器信息是什么,日历服务器地址怎么填

    日历服务器地址怎么填 内容精选 换一换 安装完操作系统后的临时云服务器需要进行相关配置,并安装原生的XEN和KVM驱动,才能保证后续创建的云服务器正常使用.该任务指导用户完成Linux云服务器的相关配 ...

最新文章

  1. CentOS软/硬RAID安装方法
  2. Jetson Xavier NX上安装scipy报错:numpy.distutils.system_info.NotFoundError: No lapack/blas resources found
  3. 51单片机auxr寄存器_51—52系列单片机特殊功能寄存器一览表
  4. linux下c代码调用.so,Linux下C程序调用.so(动态链)的一个例子
  5. 利用WindowsAPI创建窗体(c++)
  6. 学会了selenium 模拟鼠标操作,你就可以偷懒点点点了
  7. D/E盘根目录出现Msdia80.dll操作;dllregisterserver调用失败错误代码0x80004005 解决
  8. 计算机维修管理平台软件,美萍电脑行业管理软件(电脑业务管理系统、电脑维修管理系统、组装业务、电脑装机管理软件)--管理软件,美萍是专家!...
  9. 学经济学有必要学python吗_重读《1844年经济学哲学手稿》还有必要吗?
  10. static变量与普通变量的区别
  11. DQ坐标轴锁相环(pll)
  12. Echarts图表设置x轴y轴均随滚轮滚动缩+放 区域缩放
  13. elasticsearch下载太慢在国内, 我把包放到了云盘上,还有kibana,logstash.有需要自取,持续更新版本
  14. 【操作系统----Linux】Linux作为服务器系统安装过程
  15. 变量定义、赋值、初始化
  16. js字符串转数字(数字转字符串)
  17. html盒模型中border的写法,【前端】盒子模型的边框样式属性和应用技巧讲解
  18. FPGA实现RGB转HSV的转换
  19. 解决pdf打印预览中遇到特殊字符,导出失败问题
  20. Opengl Lesson 1 心形曲线

热门文章

  1. 中国中产阶层占全球三成 财富增长动力来自房产
  2. android多Modle统一配置Gradle
  3. No module named ‘pyqt5‘解决办法
  4. GPU/GPGPU架构(三十二)
  5. FFmpeg4.3.2之ffplay log输出级别(三十)
  6. GeoServer之安装mbtiles插件
  7. windows之临时文件
  8. Android日志工具Log的使用
  9. 考研初试将近,收好这份准备清单,祝你一战成硕
  10. 教你彻底卸载Ubuntu双系统,去污不残留