Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

NodeJS的WebSocket扩展封装

  之前的测试都是随手写的例子,在实际项目中不可能用那么糟糕的代码。虽然NPM上直接可以下载到WebSocket扩展,但由于我需要兼容Flash版的客户端又懒的修改别人的代码,于是自己写了个。虽然有点再造轮子的感觉,就当对WebSocket知识的巩固吧。
  这个扩展的源码我就不贴出来了,只贴使用的示例代码,文章末尾留下载地址 <script>
//客户端程序
var ws=new WebSocket("ws://127.0.0.1:8000");
ws.onopen=function(){
  document.onclick=function(e){
    var e=e||event,o=e.target||e.srcElement;
    if(o.type=="button")ws.send(o.value);
  };
};
ws.onmessage=function(e){
  console.log(e.data);
};
ws.onclose=function(e){
  console.log("服务器断开代码:"+e.code);
  console.log("断开理由:"+e.reason)
  ws.close();
};
</script>
<input type="button" value="有种你来ping我啊!" /><br/>
<input type="button" value="有种你给我发送数据啊!" /><br/>
<input type="button" value="有种你断开啊!" /><br/>
//服务器程序
require('websocket').createServer(function(ws){
  ws.on("message",function(e){
    console.log("收到数据:"+e);
    if(/ping/.test(e))ws.ping();
    if(/数据/.test(e))ws.send("你猜我发不发~");
    if(/断开/.test(e))ws.close(1000,"是你叫我断开的!");
  });
  ws.on("pong",function(){
    console.log("收到pong包");
  });
  ws.on("close",function(){
    console.log("客户端断开");
  });
}).listen(8000,'127.0.0.1');

  这个封装非常精简,把分片传输之类的功能都去掉了,只留下最基本的功能,但这已经足以满足我目前的需求了。如果今后有更多功能需求会考虑加上。最后这个实例的下载地址,里面包含的这个封装的源码。
  WebSocket的NodeJS扩展封装.rar
网名:
3.80.55.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^