/*socket.io是一个基于 node.js 的项目,其主要作用是将WebScoket 协议应用到所有的浏览器。该模块主要应用于实时的长连接
 多请求的项目中,例如在线联网游戏中、实时聊天、实施股票查看、二维码扫描登录等。
 安装配置和 npm 一样:
 npm intall scoket.io
 安装成功后,来学习如何使用 scoket.io 来创建项目,scoket 协议首先要了解其存在的服务器端和客户端,因此要实现一个scoket
 服务时,根据 scoket 的服务器端和客户端API要分别实现其逻辑。服务器端启动进程等待客户端的链接,那么接下来来创建
 一个服务器端Node.js 脚本 index_servet.js*/
var io = require('socket.io').listen(8080);
io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
 /*
var io = require('scoket.io').listen(80) :设置 socket 监听端口为8080端口
io.scoket.on('connection',function(){}):调用 scoket API 接口,当客户端 connection 时,执行回调函数function
scoket.emit('news',{hello:'world'}):连接成功后返回一个 new 消息,消息内容为 json 对象{hello:'world'}
scoket.on('my other even',function(data){}):当客户端发送 my other event 消息时,服务器哦接收该消息,
成功获取该消息后执行回调函数 function(data){}

scoket.emit() 为 scoket 发送消息的函数,第一个参数为发送消息的key值,第二个参数为发送消息的内容,也就是发送的数据
scoket.on 为 scoket 接受消息函数,同理其第一个参数为接收消息的key值,第二个参数为回调函数,其中回调函数携带的
参数为接受消息所发出的数据

接下来看 web 欠点如何通过 JavaScript 来链接 scoket 服务器。新建 index_client.html 文件,代码如下:

<script src="socket.js"></script>
<script>
  var socket = io.connect('http://localhost:8080');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

<script src="socket.js"></script>:加载 scoket.js 本地 JavaScript 文件
var socket = io.connect('http://localhost:8080'):使用 scoket 链接本地的 scoket 服务器
socket.on('news', function (data) {}:接受服务器发送的 news 消息后,当服务器推送new 消息后执行回调函数,
    回调函数的 date 参数为 news 消息发送的数据,如上面的 json 对象  { hello: 'world' }
socket.emit('my other event', { my: 'data' }):客户端接收 news 消息成功后,发送 my other evebt 消息到
    服务器端,其发送消息的内容为 json 对象
 */

node中简单scoket介绍的更多相关文章

  1. Node.js简单介绍并实现一个简单的Web MVC框架

    编号:1018时间:2016年6月13日16:06:41功能:Node.js简单介绍并实现一个简单的Web MVC框架URL :https://cnodejs.org/topic/4f16442cca ...

  2. 简单剖析Node中的事件监听机制(一)

    使用js的class类简单的实现一个事件监听机制,不同于浏览器中的时间绑定与监听,类似于node中的时间监听,并且会在接下来的文章中去根据自己的理解去写一下Event模块中的原理. Node.js使用 ...

  3. Node中的promise简说及入门

    Node的特色之一就是异步回调,可是回调过多,就会形成著名的回调金字塔. 直接上例子,我要读取1.txt里的内容,然后在这个内容上加上'test'并重新写入文件,如下代码所示: var fs = re ...

  4. java中ThreadPool的介绍和使用

    文章目录 Thread Pool简介 Executors, Executor 和 ExecutorService ThreadPoolExecutor ScheduledThreadPoolExecu ...

  5. node中的cookie

    为什么需要cookie 我们知道http是无状态的协议,无状态是什么意思呢?我来举一个小例子来说明:比如小明在网上购物,他浏览了多个页面,购买了一些物品,这些请求在多次连接中完成,如果不借助额外的手段 ...

  6. MongoDB 在Node中的应用

    转: MongoDB 在Node中的应用 文章目录 一 .什么是 MongoDB? 二.小Demo 三.Demo 增删改查 3.1 新增 3.2 查询 3.2.1 查询所有 [{},{}] 找不到返回 ...

  7. node中的Stream-Readable和Writeable解读

    在node中,只要涉及到文件IO的场景一般都会涉及到一个类-Stream.Stream是对IO设备的抽象表示,其在JAVA中也有涉及,主要体现在四个类-InputStream.Reader.Outpu ...

  8. 深入理解jQuery、Angular、node中的Promise

    最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供 ...

  9. AutoMapper之ABP项目中的使用介绍

    最近在研究ABP项目,昨天写了Castle Windsor常用介绍以及其在ABP项目的应用介绍 欢迎各位拍砖,有关ABP的介绍请看阳光铭睿 博客 AutoMapper只要用来数据转换,在园里已经有很多 ...

随机推荐

  1. 自增长的聚集键值不会扩展(scale)

    如何选择聚集键值的最佳实践是什么?一个好的聚集键值应该有下列属性: 范围小的(Narrow) 静态的(Static) 自增长的(Ever Increasing) 我们来具体看下所有这3个属性,还有在S ...

  2. 如何彻底的卸载和删除Windows service

    最近遇到很头疼的问题,安装到服务器的Windows Service卸载的时候出错了,结果在服务列表中就一直驻留,并且系统进程一直在运行,怎么都杀不掉. 最后终于找到办法了: 1.常规做法,批处理命令卸 ...

  3. P6 EPPM R16.1安装与配置指南(二)

    P6 EPPM R16.1安装与配置指南(一) http://www.cnblogs.com/endv/p/5634620.html P6 EPPM R16.1安装与配置指南(二) 环境变量配置 新建 ...

  4. Ubuntu搭建Android交叉编译环境

    一.下载 Android NDK Android NDK官方下载页:http://developer.android.com/tools/sdk/ndk/index.html如果需要旧版本的,比如10 ...

  5. ASP.NET 使用AJAX让GridView的数据行显示提示框(ToolTip)

    介绍ASP.NET AJAX可以使你的web应用程序具有更丰富的功能和更多的用户响应. 本文中,我将演示如何通过ASP.NET AJAX的帮助,给像GridView这样的数据绑定控件的数据行增加pop ...

  6. 【循序渐进学Python】6.Python中的函数

    1. 创建函数 一个函数代表一个行为并且返回一个结果(包括None),在Python中使用def关键字来定义一个函数,如下: def hello(name): print 'hello,' + nam ...

  7. 在MVC中应用百度富文本编辑器

    1.下载.NET版本的百度富文本编辑器,前往 下载.NET版本百度富文本框 2.解压下载的.zip压缩包,将utf8-.net文件夹名称改为:ueditor,复制到MVC根目录下面.结构如下: App ...

  8. Hibernate框架之注解的配置

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...

  9. windbg定位死锁

    操作系统对死锁的描述如下: 所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 那么为什么会产生死锁呢? 1.因为系统资源不足. ...

  10. NEC的学习笔记

    写过很多代码后,会有代码的规范有一些需求,会有想写出美观.规范.易懂的代码. 今天学习了NEC,全称Nice Easy CSS(http://nec.netease.com/),顾名思义,就是为了写简 ...