See More

------------------------ WebSocket-js | ------------------------ # ºÜÏÔÈ»ÕâÊÇJSµÄ¶«Î÷ # ¼ì²âä¯ÀÀÆ÷ÊÇ·ñÖ§³ÖWebSocket function loadDemo() { if (window.WebSocket) { //Ö§³Ö } else { //²»Ö§³Ö } } ------------------------ WebSocket-WebSocket | ------------------------ # ´´½¨ WebSocket ¶ÔÏó var Socket = new WebSocket(url,[protocol]); * url:±íʾÁ¬½ÓµÄµØÖ·,ͨ³£ÒÔЭÒé:"ws://"»òÕß"wss://"(°²È«µÄwebsocket)ЭÒ鿪ͷ * protocol:ÊÇÒ»¸öÊý×é,¿ÉÒÔ½ÓÊÜÒ»¸ö»òÕß¶à¸ö×ÓЭÒé,¸Ã²ÎÊý²¢²»ÊDZØÐëµÄ # ÊôÐÔ readyState * Ö»¶ÁÊôÐÔ readyState ±íʾÁ¬½Ó״̬£¬¿ÉÒÔÊÇÒÔÏÂÖµ CONNECTING :ֵΪ0,±íʾÕýÔÚÁ¬½Ó OPEN :ֵΪ1,±íʾÁ¬½Ó³É¹¦£¬¿ÉÒÔͨÐÅÁË CLOSING :ֵΪ2,±íʾÁ¬½ÓÕýÔÚ¹Ø±Õ CLOSED :ֵΪ3,±íʾÁ¬½ÓÒѾ­¹Ø±Õ,»òÕß´ò¿ªÁ¬½Óʧ°Ü bufferedAmount * Ö»¶ÁÊôÐÔ bufferedAmount Òѱ» send() ·ÅÈëÕýÔÚ¶ÓÁÐÖеȴý´«Êä,µ«ÊÇ»¹Ã»Óз¢³öµÄ UTF-8 Îı¾×Ö½ÚÊý. * ¿ÉÒÔÅжÏÏûÏ¢ÊÇ·ñ·¢ËÍÍê±Ï if (socket.bufferedAmount === 0) { // ·¢ËÍÍê±Ï } else { // ·¢ËÍ»¹Ã»½áÊø } binaryType * Ö¸¶¨¶þ½øÖÆÊý¾ÝÀàÐÍ * ö¾ÙÖµ(×Ö·û´®) binaryType = "blob"; binaryType = "arraybuffer"; # ʼþ * ʼþ´¦Àíº¯Êý,¶¼»áÓÐÒ»¸ö event ²ÎÊý Socket.onopen * Á¬½Ó½¨Á¢Ê±´¥·¢ * eventÊôÐÔ var protocol = event.target.protocol Socket.onmessage * ¿Í»§¶Ë½ÓÊÕ·þÎñ¶ËÊý¾Ýʱ´¥·¢ * eventÊôÐÔ var data = event.data; * ÅжÏÏûÏ¢ÀàÐÍ if(typeof event.data === String) { console.log("Received data string"); } if(event.data instanceof ArrayBuffer){ console.log("Received arraybuffer"); } Socket.onerror * ͨÐÅ·¢Éú´íÎóʱ´¥·¢ Socket.onclose * Á¬½Ó¹Ø±Õʱ´¥·¢ * eventÊôÐÔ var code = event.code; var reason = event.reason; var wasClean = event.wasClean; * eventͨÓÃÊôÐÔ # ·½·¨ Socket.send() * ʹÓÃÁ¬½Ó·¢ËÍÊý¾Ý * ·¢ËͶþ½øÖÆÊý¾Ý var file = document.querySelector('input[type="file"]').files[0]; ws.send(file); Socket.close() * ¹Ø±ÕÁ¬½Ó * ÔÚ´°¿Ú¹Ø±Õ֮ǰ,¾Í¹Ø±Õµ½socketÁ¬½Ó,ÓпÉÄܻᵼÖ·þÎñÆ÷¶ËÒì³£ window.onbeforeunload = function () { ws.close(); } ------------------------ WebSocket-WebSocket | ------------------------