/*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. 用Qt写软件系列三:一个简单的系统工具(上)

    导言 继上篇<用Qt写软件系列二:QIECookieViewer>之后,有一段时间没有更新博客了.这次要写的是一个简单的系统工具,需求来自一个内部项目.功能其实很简单,就是查看当前当前系统 ...

  2. Event事件跨浏览器封装

    var Event = { //注册事件 addEvent: function(element,type,handler){ if(element.addEventListener){ //DOM2级 ...

  3. 利用Aspose.Cell控件导入Excel非强类型的数据

    导入Excel的操作是非常常见的操作,可以使用Aspose.Cell.APOI.MyXls.OLEDB.Excel VBA等操作Excel文件,从而实现数据的导入,在导入数据的时候,如果是强类型的数据 ...

  4. 怎样用C#代码知道是否已连接网络

    有时,上传数据和下载数据都需要用到网络,但是不知道程序是否已连接到网络,下面是简单测试是否已连接网络的小功能 1.在winform窗体上添加一个按钮和多选框

  5. 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等

    [源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native  ...

  6. 重新想象 Windows 8 Store Apps (65) - 后台任务: 音乐的后台播放和控制

    [源码下载] 重新想象 Windows 8 Store Apps (65) - 后台任务: 音乐的后台播放和控制 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 后台 ...

  7. 用于dbnull的数据转换。因为用convert.to无法转换dbnull类型

    /// <summary> /// add by wolf /// </summary> public static class ExtendObject { public s ...

  8. uml中的几种关系

    这是一堂关于UML基础知识的补习课:现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了:本篇主要就以前自己一直感觉很迷糊的几种class之间的 ...

  9. linux2.4.18内核定时器的使用

    Linux2.4下驱动中定时器的应用 我的内核是2.4.18的.Linux的内核中定义了一个定时器的结构: #include<linux/timer.h> struct timer_lis ...

  10. PHP学习笔记:伪静态规则的书写

    这里以阿帕奇为服务器软件,直接上案例: 1.把index.html重定向到index.php RewriteEngine On Options -Indexes ReWriteRule ^index. ...