前言

一直在想要不要写下这篇,因为网上关于websocket的介绍和使用的好文实在太多太多,例如有这篇这篇

但我不管了,写下来,这样我就不用在想使用的时候总是去翻写过的源码了。

先回答几个简单的问题。

什么是websocket?websocket有什么用?什么时候用websocket?

这几个问题一起回答。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

全双工的意思差不多就是客户端可以向服务器通信,服务器也可以向客户端通信,

而以前使用的HTTP协议只能客户端向服务器通信,如果想要得到服务器的消息,只能不断地向服务器发起请求,

然而实在没什么消息的话,不断发请求实则是一种资源浪费,所以这种时候就需要使用websocket了。

websocket能保持一种长连接,而且服务器能主动向客户端发消息,对于那种需要保持长时间联系的场景那再适合不过了!

示例

websocket的使用非常的简单,下面是一个实例:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>websocket</title>
</head>
<body>
<button id="openWS">连接</button>
<button id="closeWS">关闭</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script> var ws; // 先创建一个全局变量 $('#openWS').click(function(){ // 创建websocket的实例
// 实例一旦成功创建就会建立websocket连接
ws = new WebSocket('ws://xxx.com'); }); // 主动关闭连接
$('#closeWS').click(function(){
ws.close();
}); // 监听打开
ws.onopen = function() {
console.log('连接成功');
// 做你想做的事
}; // 监听错误
ws.onerror = function(){
console.log('连接失败');
// 做你想做的事
}; // 监听消息
ws.onmessage = function(data) {
console.log(data);
// 做你想做的事
}; // 监听窗口关闭 在窗口关闭前自动关闭连接
ws.onbeforeunload = function(){
ws.close();
}; // 监听关闭
ws.onclose = function() {
console.log('连接关闭');
// 做你想做的事
}; // 在建立websocket连接之后,就可以向服务器发送消息
var data = '我想告诉你';
ws.send(data); </script>
</body>
</html>

更多的实例属性和方法点这里

WebSocket入门及示例的更多相关文章

  1. Spring WebSocket初探2 (Spring WebSocket入门教程)<转>

    See more: Spring WebSocket reference整个例子属于WiseMenuFrameWork的一部分,可以将整个项目Clone下来,如果朋友们有需求,我可以整理一个独立的de ...

  2. WebSocket入门教程(五)-- WebSocket实例:简单多人聊天室

    from:https://blog.csdn.net/u010136741/article/details/51612594 [总目录]   WebSocket入门教程--大纲   [实例简介]   ...

  3. C# 实现WEBSOCKET聊天应用示例

    C# 实现WEBSOCKET聊天应用示例 http://blog.163.com/da7_1@126/blog/static/10407267820121016103055506/ 2012-11-1 ...

  4. Python开发 之 Websocket 的使用示例

    1.唠唠叨叨 最近又回顾了下Websocket,发现已经忘的七七八八了.于是用js写了客户端,用python写了服务端,来复习一下这方面的知识. 2.先看一下效果吧 2.1.效果1(一个客户端连上服务 ...

  5. C# WebSocket 服务端示例代码 + HTML5客户端示例代码

    WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...

  6. Spring MVC 入门教程示例 (一)

    今天和大家分享下  Spring MVC  入门教程 首先还是从 HelloWorld  web 工程开始 -------------------------- 1.首先创建一个Maven Web工程 ...

  7. NetCore WebSocket 即时通讯示例

    1.新建Netcore Web项目 2.创建简易通讯协议 public class MsgTemplate { public string SenderID { get; set; } public ...

  8. wxPython 入门开发示例

    1.背景资料 wxPython API:https://www.wxpython.org/Phoenix/docs/html/ 2.入门示例 wxPython最重要的两个概念:App与Frame,其中 ...

  9. 周记1——WebSocket入门

    一周复一周,时间过得飞快,每个周末都是很开心却又很彷徨.开心的是不用工作,彷徨的是自己这周学到了什么.自身的技能有没有提高.如何应对这个日新月异的社会... 本周的工作的开发IM(即时聊天)模块,要用 ...

随机推荐

  1. Pandas学习笔记(三)

    (1)系列对象( Series)基本功能 编号 属性或方法 描述 1 axes 返回行轴标签列表. 2 dtype 返回对象的数据类型(dtype). 3 empty 如果系列为空,则返回True. ...

  2. Ajax2简单的使用方式

    http://www.cnblogs.com/Ming8006/p/6142191.html

  3. ssm注入失败

    今天做ssm整合时候,创建bean/注入一直出错,检查几遍没发现问题,后来发现犯了个低级错误,mapper.xml的<mapper namespace="XXXXX" > ...

  4. abp .net core area routes

    添加area之后,一直访问不到area中的地址 1:Areas中的Controller必须要继承自 zzzControllerBase 2:该Controller必须加上 area特性

  5. Java好的的工具类:JsonUtils

    package com.nxhfzx.gdshopping.utils; import java.util.List; import com.fasterxml.jackson.core.JsonPr ...

  6. group_concat_max_len

    SET SESSION group_concat_max_len = 1000000; SELECT GROUP_CONCAT(a.label_number SEPARATOR ',') FROM ( ...

  7. Rocket MQ 2 - Namesrv

    通过上文中使用可以看到,主要逻辑还是在NamesrvController中包含KVConfigManager负责配置相关的读写,RouteInfoManager负责路由信息的管理; 启动定时任务定时打 ...

  8. if、for、while的详解及实例(一)

    实例一:猜字谜a = 1i = 0while a != 20: a = int (input ('请输入你猜的数字:')) i += 1 print(i) if a == 20: if i<3: ...

  9. ubuntu16中部署web项目到tomcat,xft和securecrt连接到ubuntu16(待续。。。)

    xftp    xftp中新建连接    ubuntu中安装和启动ssh服务    xftp连接到ubuntu 安装JDK,Tomcat    sudo tar -zvxf jdk.tar.gz   ...

  10. errors collectiions

    c/c++中出现“undefined reference to”的解决 如果提示未定义的函数是某个库的函数.检查库时候已经安装,并在编译命令中采用-l和-L参数导入库. 如果提示未定义的函数是程序中的 ...