websockt 实现

来源:互联网 发布:linux 查看系统分区 编辑:程序博客网 时间:2024/06/02 19:09
客户端代码如下:

   
    Welcome
   
   
   
   
   
   

    var websocket =null;
var timeout=6000;
var time;
var msg="heart is run";
   //判断当前浏览器是否支持WebSocket
    if ('WebSocket' inwindow) {
       websocket = newWebSocket("ws://127.0.0.1:8080/");
    }
    else {
      
    }

    //连接发生错误的回调方法
    websocket.onerror =function () {
       setMessageInnerHTML("WebSocket连接发生错误");
    };

    //连接成功建立的回调方法
    websocket.onopen =function () {
       setMessageInnerHTML("WebSocket连接成功");
      setInterval(function(){
       if (websocket.readyState==1) {
       websocket.send(msg); 
       }
if(new Date()-time> timeout){
websocket=new WebSocket("ws://127.0.0.1:8080/");
},1000*10);    
    }

    //接收到消息的回调方法
    websocket.onmessage =function (event) {
       setMessageInnerHTML(event.data);
       var data=JSON.parse(event.data);
       if(data.a=='ok')
{
time=new Date();
}
    }

    //连接关闭的回调方法
    websocket.onclose =function () {
       setMessageInnerHTML("WebSocket连接关闭");
    }

   //监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
    window.onbeforeunload =function () {
       closeWebSocket();
    }

    //将消息显示在网页上
    functionsetMessageInnerHTML(innerHTML) {
       document.getElementByIdx_x('message').innerHTML +=innerHTML + '
';
    }

    //关闭WebSocket连接
    functioncloseWebSocket() {
       websocket.close();
    }

    //开启WebSocket连接
    function openWebSocket(){
    websocket = newWebSocket("ws://localhost:8080/websocket");
    }

    //发送消息
    function send() {
       var message =document.getElementByIdx_x('text').value;
       websocket.send(message);
    }


服务器端代码如下:

var WebSocketServer = require('ws').Server;
var  wss = new WebSocketServer({port:8080});

wss.on('connection', function(ws) {
    ws.on('message',function(message) {
   
       console.log('received: %s', message);
    });
   
   ws.send('{"a":"ok","b":"b","c":"c","d":"d"}');


});


0 0
原创粉丝点击