类似dataservice

我们socket io 和后端交互

我们也可以做成专门的service

我们先引入

为什么不是cdn呢?

因为client就是从我们的server端拿到的socket.io.js这个文件

当然现在我们还拿不到

因为我们server还没装socker.io这个包

一旦装了

client就可以拿到了

我们去server装

我们回到client端(前端)

我们通过socket。io来协作的

这个协作给我前端提供其他用户的光标的位置 输入的操作,同时你自己也需要实时的发送你的光标位置和输入信息

所以,我们做成service,大家都可以调用

去provide注册(只有注册了才能被其他component用@inject使用)

同样socket.io第三方包想使用也要declare

建立连接发送信息 123

接收信息 并打印

socket.io 是双向连接 否则post get请求就能完成来了

我们写个这个为了验证是否工作

我们去验证一下、

使用一下这个service

注入 并调用方法

我们去写一下server端

我们server端的service只有一个是请求mongodb拿数据的

我们加个新的service

第四行 一般传入message都会传入特定的参数来表明你要加入哪个聊天室,这样,handshake接收到参数就知道你要加入哪里。

第五行,io.to()是将收到的信息返回去,socket.id是唯一指定对象的标识,每个人链接socket server的id是不同的,如果不写的话就是广播。

用id就可以唯一指定client端的instance,就可以明确请求信息。l

service写好了

我们就要去server端初始化io了

server打印的log信息中可以看到 我们cilent端发送的message ‘123’

成功

原理就是这样

下面我用这个来实现editor之间的同步

18. socket io的更多相关文章

  1. 18.1利用socket .io 实现 editor间代码的同步

    首先,我们想实现在同一个页面editor 大家同时编辑 同步 所以能 我们需要这个url 作为我们 session id 或者叫聊天室的roomid 或者 反正就是保证他们在同一个list里面 就是 ...

  2. npm install socket.io遇到的问题

    解决方法: 输入 npm install socket.io 前,先执行下面 npm config set proxy "http://yourip:port" 生产的npm-de ...

  3. socket.io稳定性及事件测试

    socket.io测试报告 1.socekt.io能坚持多久 将服务器上的socekt.io代码从早上9:30分开始运行到晚上18点,每100毫秒发送一条数据,数据大概15个字符,同时开启5个连接 结 ...

  4. AndroidAsync :异步Socket,http(client+server),websocket和socket.io的Android类库

    AndroidAsync是一个用于Android应用的异步Socket,http(client+server),websocket和socket.io的类库.基于NIO,没有线程.它使用java.ni ...

  5. Socket.IO学习之基础入门

    原文:http://blog.csdn.net/weichuang_1/article/details/48831957 这里贴出Socket.IO官网 一.Socket.IO的介绍 Socket.I ...

  6. socket.io框架

    socket.io框架 一.问题背景 目前公司在互联网产品上需要程序与前端部分要进行一个实时交互,在进行一定程度上的选型后,决定使用socket.io框架进行一个实践,算是公司的一个新的 尝试,也算是 ...

  7. socket.io入门整理教程

    socket.io入门整理  发布于 5 年前  作者 dtrex  124983 次浏览  最后一次编辑是 1 年前 我自己在用socket.io开发,对官方网站上的文档,进行简单的整理,然后自己写 ...

  8. socket.io入门整理

    我自己在用socket.io开发,对官方网站上的文档,进行简单的整理,然后自己写了一个简单的聊天程序. 最最开始 先安装socket.io: 1 npm install socket.io 利用Nod ...

  9. 使用node.js + socket.io + redis实现基本的聊天室场景

    在这篇文章Redis数据库及其基本操作中介绍了Redis及redis-cli的基本操作. 其中的publish-subscribe机制应用比较广泛, 那么接下来使用nodejs来实现该机制. 本文是对 ...

随机推荐

  1. EXT.NET 一些用法

    EXT.NET 一些用法 <ext:GridPanel ClicksToEdit="1" <%-- 点击几下单元格可编辑 1 代表单击一下.--%> > & ...

  2. c#语言函数

    class Program {访问修饰符 函数名(参数1,参数2){   函数体   return 返回值} 无参数,无返回值 public static void abc()             ...

  3. Android:真机调试遇到的问题(You need to use a Theme.AppCompat theme (or descendant) with this activity)

    Android:真机调试遇到的问题(You need to use a Theme.AppCompat theme (or descendant) with this activity). 在调试&l ...

  4. JavaBean转xml

    JavaBean转xml的工具就是:XStream XStream的作用: XStream可以把JavaBean对象转换成XML!通常服务器向客户端响应的数据都是来自数据库的一组对象,当我们不能直接把 ...

  5. Java - 14 Java 日期时间

    java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...

  6. 《Linux 性能及调优指南》1.1 Linux进程管理

    https://blog.csdn.net/ljianhui/article/details/46718835 本文为IBM RedBook的Linux Performanceand Tuning G ...

  7. python学习之----Lambda表达式

    Lambda 表达式本质上就是一个函数,可以作为其他函数的变量使用:也就是说,一个函 数不是定义成f(x, y),而是定义成f(g(x), y),或f(g(x), h(x)) 的形式. Beautif ...

  8. python - 配置文件

    #配置文件 #.ini .properties .conf 等都是配置文件 #section 片段[]: option 选项 #同一个section下option都是唯一的 #语法 #[secion] ...

  9. 关于QTcreator出现不能包含头文件的解决

    调试出现不能包含“某某.h文件”当增加次文件时候,还会出现另一个不能包含“某某.h”文件. 问题解决:由于VS2015和QT的冲突导致(不完全),下载不关联VS的QT版本再进行安装就可以啦.

  10. java 可重入锁ReentrantLock的介绍

    一个小例子帮助理解(我们常用的synchronized也是可重入锁) 话说从前有一个村子,在这个村子中有一口水井,家家户户都需要到这口井里打水喝.由于井水有限,大家只能依次打水.为了实现家家有水喝,户 ...