网络编程
位置:首页>> 网络编程>> 网页设计>> HTML5 WebSockets基础使用教程(5)

HTML5 WebSockets基础使用教程(5)

作者:暴风彬彬 来源:彬Go 发布时间:2010-09-21 12:48:00 

标签:HTML5,WebSockets,教程

第七步:发送数据  

现在我们已经有了提交按钮,但我们还需要监听用户按下键盘的事件,并运行send函数,下面的’13′便是回车键对应的ASCII码。

$

('#text').keypress(function(event) { 
    if (event.keyCode == '13') { 
        send(); 
    } 
});

下面是send()函数:

function send(){ 
    var text = $('#text').val(); 
    if(text==""){ 
        message('<p class="warning">Please enter a message'); 
        return ; 
    } 
    try{ 
        socket.send(text); 
        message('<p class="event">Sent: '+text) 
    } catch(exception){ 
    message('<p class="warning"> Error:' + exception); 
    } 
    $('#text').val(""); 
}

下面我们需要:

socket.send();

那些额外的代码做了以下工作:检测用户是否什么都没输入却仍点击返回、清空input输入框、执行message()函数。

第八步:关闭Socket  

关闭Socket操作相当简单,添加对断开连接按钮的click事件监听就可以。

$('#disconnect').click(function(){ 
    socket.close(); 
});

完整JavaScript代码

 

$(document).ready(function() { 
  if(!("WebSocket" in window)){ 
  $('#chatLog, input, button, #examples').fadeOut("fast"); 
  $('<p>Oh no, you need a browser that supports WebSockets. How about <a href="Google'>http://www.google.com/chrome">Google Chrome</a>?</p>').appendTo('#container'); 
  }else{ 
      //The user has WebSockets 
      connect(); 
      function connect(){ 
          var socket; 
          var host = "ws://localhost:8000/socket/server/startDaemon.php"; 
          try{ 
              var socket = new WebSocket(host); 
              message('<p class="event">Socket Status: '+socket.readyState); 
              socket.onopen = function(){ 
                 message('<p class="event">Socket Status: '+socket.readyState+' (open)'); 
              } 
              socket.onmessage = function(msg){ 
                 message('<p class="message">Received: '+msg.data); 
              } 
              socket.onclose = function(){ 
                message('<p class="event">Socket Status: '+socket.readyState+' (Closed)'); 
              }          
          } catch(exception){ 
             message('<p>Error'+exception); 
          } 
          function send(){ 
              var text = $('#text').val(); 
 
              if(text==""){ 
                  message('<p class="warning">Please enter a message'); 
                  return ; 
              } 
              try{ 
                  socket.send(text); 
                  message('<p class="event">Sent: '+text) 
              } catch(exception){ 
                 message('<p class="warning">'); 
              } 
              $('#text').val(""); 
          } 
          function message(msg){ 
            $('#chatLog').append(msg+'</p>'); 
          } 
          $('#text').keypress(function(event) { 
              if (event.keyCode == '13') { 
                send(); 
              } 
          });    
          $('#disconnect').click(function(){ 
             socket.close(); 
          });  
      }//End connect 
  }//End else 
});

0
投稿

猜你喜欢

  • 从概念上讲,大多数关系数据库系统都是类似的:它们都由一组数据库组成,且每个数据库都包含一组表。但是,所有的系统都有自己的管理数据的方法, M
  • 为什么我写ASP分页教程要提到AJAX呢,因为我们要多练习一下编程过程中,结构化的重要性. 再加上很多朋友对分页感到很高深,所以一直都不敢去
  • 决定数据类型的第一步是定义所存数数据的分类: 数值型, 字符串型还是临时型等;除了一些特别的并不是那么直观的外, 这通常是很直观的。接下来是
  • 在软件开发的初始阶段,开发商们总是想把整个系统的最小的细节设计好了,然后再去单线程的编写代码。这样软件开发完成需要很长时间,但开发商们一直都
  • 好久没有更新博客了,今天看到论坛上有位朋友问起全屏布局,有点像vc的界面。来了兴趣,就写了一个。运用IE6的怪异模式,通过绝对定位来实现的。
  • 删除单条记录 代码如下:id = saferequest("id") sql="
  • SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A')
  • 环境Laravel 5.4原理在Laravel中,门面为应用服务容器中绑定的类提供了一个&ldquo;静态&rdquo;接口
  • 大家一定使用过 phpmyadmin 里面的数据库导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题: 1、数据库超过一定尺寸,
  • 随着网页技术的发展,网络视觉设计与之前以程序员为主导的审美特征相比,具有了极大的改观。同时,随着美术、音乐、舞蹈人才的加入,网络开始在这一社
  • 如何在寸土寸金的首页上使页面的价值最大化,是每个网站设计者最关心的话题。用户关注的页面长度、宽度都是有限的。宽度自不必说,一般网站都会根据自
  • 首先要兼容IE\FF滴然后有一个环境与条件:必须是使用em单位布局。因为这个是利用字号做缩放效果,并且兼容fontSize各项单位,例如px
  • 在我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大
  • 设计方法曾经是个很尴尬的话题,因为经常看上去很美。专业人士们动手动脚折腾一大圈,出来的结果令人大跌眼镜。也有些设计师总喜欢把方法、概念吹的特
  • flash param参数和属性下列标记属性和参数描述了由“发布”命令创建的 HTML 代码。在编写自己的用于显示 Flash 内容的 HT
  • google 的设计原则中文1.易用性-聚焦在人,方便他们的生活,工作,梦想。2.速度-分秒必争3.简单-简单而强有力4.关联性- 对初学者
  • 学习目的 学会SQL中的占位符用法 在鲸鱼这几天忙死了,好几天没写了,真对不起各位。这几天让XHTML闹得不开心,虽然以前也知道这个,但没太
  • RegMail是用来存放注册邮件的表,现以创建时间(CreateTime)字段来给表进行分区,具体步骤如下:--为分区创建存储文件 
  • 基本的网站页面设计元素布局比例统计,给大家做个参考,看看您的网站是否和下面的统计一致:标志图案:位置统计结果左上角84%右上角6%上方居中6
  • 大家已经从实际使用中了解了jquery这个javascript框架的强大,其实jquery更加强大的是可扩展。你可以编写自己的基于jquer
手机版 网络编程 asp之家 www.aspxhome.com