var ws = new WebSocket("ws://localhost:8080/msg");
//readyState属性返回实例对象的当前状态,共有四种。
//CONNECTING:值为0,表示正在连接。
//OPEN:值为1,表示连接成功,可以通信了。
//CLOSING:值为2,表示连接正在关闭。
//CLOSED:值为3,表示连接已经关闭,或者打开连接失败
//例如:if (ws.readyState == WebSocket.CONNECTING) { } //【用于指定连接成功后的回调函数】
ws.onopen = function (evt) {
console.log("Connection open ...");
ws.send("Hello WebSockets!");
};
//ws.addEventListener('open', function (event) {
// ws.send('Hello Server!');
//}; //【用于指定收到服务器数据后的回调函数】
//【服务器数据有可能是文本,也有可能是二进制数据,需要判断】
ws.onmessage = function (event) {
if (typeof event.data === String) {
console.log("Received data string");
} if (event.data instanceof ArrayBuffer) {
var buffer = event.data;
console.log("Received arraybuffer");
}
console.log("Received Message: " + evt.data);
ws.close();
}; //[【于指定连接关闭后的回调函数。】
ws.onclose = function (evt) {
console.log("Connection closed.");
}; //发送文本
ws.send("Hello WebSockets!");
//发送Blob数据
var file = document
.querySelector('input[type="file"]')
.files[0];
ws.send(file);
//发送ArrayBuffer
var img = canvas_context.getImageData(0, 0, 400, 320);
var binary = new Uint8Array(img.data.length);
for (var i = 0; i < img.data.length; i++) {
binary[i] = img.data[i];
}
ws.send(binary.buffer); //webSocket.bufferedAmount
//bufferedAmount属性,表示还有多少字节的二进制数据没有发送出去。它可以用来判断发送是否结束
var data = new ArrayBuffer(10000000);
socket.send(data); if (socket.bufferedAmount === 0) {
// 发送完毕
} else {
// 发送还没结束
} //webSocket.onerror 用于指定报错时的回调函数 ws.onerror = function (event) {
}; es.addEventListener("error", function (event) {
});

  from:https://blog.csdn.net/wangzhanzheng/article/details/78603532

js实现webSocket客户端的更多相关文章

  1. nodejs——js 实现webSocket 兼容移动端

    nodejs——js 实现webSocket 兼容移动端 //服务器端 //npm install --save ws const express = require('express'); cons ...

  2. 【转】SocketRocket:iOS WebSocket客户端开源框架

    原文网址:http://blog.csdn.net/zmp1123/article/details/44015507 WebSocket: WebSocket通信协议实现的是基于浏览器的原生socke ...

  3. 火币网行情获取的websocket客户端

    从验证结果看应该是网络关闭了,不过程序写的不错,可以作为其它websocket客户端的测试程序 # !/usr/bin/env python # -*- coding: utf-8 -*- # aut ...

  4. Node.js 使用http客户端向网站请求数据并保存

    app.js代码: // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // 内置文件处理模块 var fs=requir ...

  5. js使用WebSocket,java使用WebSocket

    js使用WebSocket,java使用WebSocket 创建java服务端代码 import java.net.InetSocketAddress; import org.java_websock ...

  6. 基于node.js 的 websocket的移动端H5直播开发

    这一篇介绍一下基于node.js 的 websocket的移动端H5直播开发, 下载文章底部的源码,我是用vscode打开, 首先在第一个终端运行 npm run http-server 这个指令是运 ...

  7. HTTPS请求HTTP接口被浏览器阻塞,python实现websocket客户端,websocket服务器,跨域问题,dwebsocket,https,拦截,服务端

    HTTPS请求HTTP接口被浏览器阻塞,python实现websocket客户端,websocket服务器,跨域问题,dwebsocket,https,拦截,服务端 发表时间:2020-03-05 1 ...

  8. netty系列之:使用netty搭建websocket客户端

    目录 简介 浏览器客户端 netty对websocket客户端的支持 WebSocketClientHandshaker WebSocketClientCompressionHandler netty ...

  9. JAVA实现websocket客户端

    pom依赖 <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-We ...

随机推荐

  1. Java编程的逻辑 (8) - char的真正含义

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  2. c# winform+wcf代理上网的处理

    程序是.net开发的winform工具,分服务器端和客户端,用wcf技术实现数据交互. 客户端是大型公司,内部统一使用代理服务器上网.具体描述为:在IE中设置lan代理服务器才能查询网络数据:登录QQ ...

  3. jQuery(五):文本操作

    text()可以获取或设置元素的文本内容.例如: 示例: <!DOCTYPE html> <html lang="en"> <head> < ...

  4. Windows下超强日志工具BareTail

    最近写了一些测试工具,经常希望能动态的查看日志文件,试了好些文本编辑文件如Emeditor.Vim等,一直没找到合适. 我希望支持的功能有: 支持大文件读取,速度要快 自动加载新的内容,直接定位到最后 ...

  5. 微信小程序——navigator无法跳转

    今天在做小程序的时候,发现用navigator无法进行跳转.url 路径也是对的. 后面发现是因为我需要跳转的页面定义在了tabBar里面的.如下图: 如果需要跳转到tabBar里面定义的这些页面,需 ...

  6. Android下ListView上下滑动背景变黑

    老问题,Google一下就能找到N多答案,为方便自己日后查阅,记录如下: 手指在ListView上下滚动时,ListViewItem背景变黑,因为在滚动的时候为了提升性能做了优化,为提高滚动的性能,A ...

  7. Navdeep Jaitly

    中文名:耐迪普 杰特尼 早期: 印度科技大学 1994-1995 滑铁卢大学 1998-2000 博士: 多伦多大学 Hinton实验室 2008-2014 工作: 谷歌大脑 2014-2017 英伟 ...

  8. 33个与众不同的Web表单设计

    表单在web设计中很重要,因为它具有直接的用户交互.创新?有趣?富有色彩?设计一个交互,需要设计师关注登陆/注册表单的设计元素. 这里有33个与众不同的web表单设计,希望能使你获得设计灵感. 1. ...

  9. (笔记)Mysql命令desc:获取数据表结构

    desc命令用于获取数据表结构. desc命令格式:    desc 表名;同样    show columns from 表名;也能获取数据表结构. 举例如下:mysql> desc MyCl ...

  10. ICMP Ping模版实现对客户端网络状态的监控

    Zabbix使用外部命令fping处理ICMP ping的请求,fping不包含在zabbix的发行版本中,需要额外去下载安装fping程序,安装完毕之后需要zabinx_server.conf中的参 ...