经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTMLCSS » HTML5 » 查看文章
websocket使用个人总结
来源:cnblogs  作者:依旧那片天  时间:2018/10/19 9:12:03  对本文有异议

前言

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

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

 

先回答几个简单的问题。

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

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

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

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

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

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

 

实例

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>websocket</title>
  6. </head>
  7. <body>
  8. <button id="openWS">连接</button>
  9. <button id="closeWS">关闭</button>
  10. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  11. <script>
  12.  
  13. var ws; // 先创建一个全局变量
  14. $('#openWS').click(function(){
  15. // 创建websocket的实例
  16. // 实例一旦成功创建就会建立websocket连接
  17. ws = new WebSocket('ws://xxx.com');
  18. });
  19. // 主动关闭连接
  20. $('#closeWS').click(function(){
  21. ws.close();
  22. });
  23. // 监听打开
  24. ws.onopen = function() {
  25. console.log('连接成功');
  26. // 做你想做的事
  27. };
  28. // 监听错误
  29. ws.onerror = function(){
  30. console.log('连接失败');
  31. // 做你想做的事
  32. };
  33. // 监听消息
  34. ws.onmessage = function(data) {
  35. console.log(data);
  36. // 做你想做的事
  37. };
  38. // 监听窗口关闭 在窗口关闭前自动关闭连接
  39. ws.onbeforeunload = function(){
  40. ws.close();
  41. };
  42. // 监听关闭
  43. ws.onclose = function() {
  44. console.log('连接关闭');
  45. // 做你想做的事
  46. };
  47. // 在建立websocket连接之后,就可以向服务器发送消息
  48. var data = '我想告诉你';
  49. ws.send(data);
  50. </script>
  51. </body>
  52. </html>

 

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号