首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    socket.io的简单使用

    在开发websocket的时候,我们可能会用到socket.io这个库,来看一下这个库的简答应用,先看一个简单的案例,服务端代码: const express = require('express')...socket = io(); //向指定的服务器建立连接,地址可以省略 //自定义msg事件,发送‘你好服务器’字符串向服务器 setTimeout(()=>{.../html> 这里需要注意的是:通过socket.io搭建的websocket服务器,只能和socket.io配套的前端库一起使用,此时不能在使用原生的websocket接口代码。...还有就是在引入前端库时可以直接使用这个地址/socket.io/socket.io.js。因为搭建起websocket服务器后,服务器会默认发布这个资源。...以上便是使用socket.io搭建websocket服务器的简单使用,希望对你有所帮助。

    2.3K31

    socket.io搭建分布式Web推送服务器

    socket.io是目前较为流行的web实时推送框架,其基于nodejs语言开发,底层用engine.io实现。 借助nodejs语言异步的特性,其获得了不错的性能。...但单个实例的socket.io依然承载能力有限,最多只能容纳3000个long-polling方式的客户端进行连接。 将socket.io进行分布式扩展的难点有两处: 1....准备安装的软件: nginx, nodejs, redis以及一个socket.io应用,如一个聊天服务器,例子请见官网这里。...3.安装nodejs模块 socket.io-redis sudo npm install socket.io-redis 4.在原来socket.io应用中初始化io的位置加入io的redis适配器:...可以通过redis的订阅发布服务来实现其他系统同集群的通信,完成集群的管理工作。

    2.5K30

    socket-io的底层实现设计原理

    前言 上一篇文章 《漫谈socket-io的基本原理》 用了现实非常浅显的例子,尽可能地阐释非阻塞、阻塞、多线程、多路复用poll和 epoll 背后演进的整体思考脉络,将有助于读者从宏观的角度把握住socket-io...如果文章不错,欢迎分享转载,关注公众号:亦山札记(louluan_note) 现实生活中的例子 上一篇文章 《漫谈socket-io的基本原理》 中提到的餐厅中服务员Amy 的工作模式,实际上和真正的...Socket 工作模式非常的相似: 餐厅 Socket 服务员Amy 前台接待,如果没有等到顾客,就一直阻塞; ServerSocket 在监听服务端口,等待Socket 连接,如果没有连接,则阻塞等待...创建的每一个socket对象,操作系统会分配一个FD , 后续的IO操作,都是通过Java本地方法调用传入 FD 来操作 socket。...至于为什么会有多路复用选择器的设计理念,请看下作者的上篇博文 《漫谈socket-io的基本原理》。

    1.1K10

    Socket.io进阶-命名空间的使用

    使用socket.io搭建服务器可以使用命名空间,每个命名空间类似于一个独立的管道。...先看一下服务器代码: const express = require('express'); const http = require('http'); const Io = require('socket.io...(data);//你好服务器,我是通过b的命名空间发送的信息 socket.emit('msg', '你好浏览器,我收到了你的信息1'); //向socket用户发送信息...}) }) 阅读源码我们按照前面介绍的socket.io搭建websocket服务器的方法,在这里我们并没有直接用socektServer直接监听connection时间,而是通过websocketServer...以上便是socket.io的空间命名的使用,主要是后端of方法的使用和前端连接是追加路径从而连接不同的socket,希望对你有所帮助。

    1.7K31

    kubernetes 下实现socket.io 的集群模式

    socket.io 单节点模式是很容易部署的,但是往往在生产环境一个节点不能满足业务需求,况且还要保证节点挂掉的情况仍能正常提供服务,所以多节点模式就成为了生成环境的一种必须的部署模式。...本文将介绍如何在kubernetes 集群上部署多节点的socket.io服务。...问题 现在正在准备将线上环境一步步迁移到kubernetes 集群上,这样我们可以根据实际情况部署多个POD 来提供服务,但是socket.io服务并不是单纯的无状态应用,只需要将POD 部署成多个就可以正常提供服务了...annotations和sessionAffinity两项配置,然后我们再来看看我们的socket.io服务吧 ?...我们这里利用socket.io-redis 这个adapter 来实现消息的广播,最终的服务端代码如下: const express = require('express'); const socketRedis

    2.8K50

    漫谈socket-io的基本原理

    大纲 前言 没有阻塞的代价 阻塞的代价 多线程模式-缓解IO处理能力方式之一 基于IO通知的多路复用 - Polling 原理 提升Polling的效率-epoll原理 前言 socket-io 是服务端高性能通信的基石...整个socket的知识体系很大,包括计算机网络协议、计算机组成原理(网卡、DMA)、操作系统的IO机制等,没办法一次性的全部展开。...本文的切入点是解释清楚 socket 场景下,操作系统对 io 的处理过程。...公众号: louluan_note(亦山札记) 本主要介绍socket-io的基本原理,如果想了解具体底层实现逻辑,请看我的另外一个博文 《socket-io的底层实现设计原理》 ---- 没有阻塞的代价...本主要介绍socket-io的基本原理,如果想了解具体底层实现逻辑,请看我的另外一个博文 《socket-io的底层实现设计原理》 ---- 注:本文只是介绍宏观的基本概念,具体技术细节将通过另外博客阐述

    90520

    socket.io不为人知的功能

    介绍 socket.io 是一个基于websocket实现的前后端实时通讯框架,也对低版本浏览器做了封装。使用起来简单,方便。 初次使用起来可能会比较迷糊,其实主要常用就几个方法,简单介绍一下。...客户端 io.connect(url) //客户端连接上服务器端 socket.on('eventName', msg => {}) //客户端监听服务器端事件 socket.emit('eventName...', msg) //客户端向服务器端发送数据 socket.disconnect() //客户端断开链接 服务端 socket.on('eventName', msg => {}) //服务器端监听客户端...socket.emit('eventName', msg) //服务端各自的socket向各自的客户端发送数据 socket.broadcast('eventName', msg) //服务端向其他客户端发送消息...,不包括自己的客户端 socket.join(channel) //创建一个频道(非常有用,尤其做分频道的时候,比如斗地主这种实时棋牌游戏) io.sockets.in(channel) //加入一个频道

    70820

    Android 带伸缩动画的布局

    OK,下面主要看实现步骤,你随便新建一个Activity就可以了,然后把需要的的一些样式准备好, ? ?...由于白色的我放上去你也看不见,所以你就用黑色的先顶着,然后就是背景样式 shape_search_bg.xml 的关闭按钮,然后通过LinearLayout.LayoutParams来设置展开布局的宽度,因为我是横向,所以我获取屏幕的宽度为px,...再转换成dp,然后减去40其实是左右20的边距,同时在展开的时候增加了左右的内边距,最后放入到beginDelayedTransition方法中,进行实例化,再设置动画时间,最后交给TransitionManager...进行处理就达到了以上的效果,至于关闭的业务就是和展开是相反的业务处理,并且多了输入法的关闭和输入框的清空。

    2.1K60

    很幽默的讲解六种Socket IO模型

    很幽默的讲解六种Socket I/O模型 信息来源:幻影论坛     作  者: flyinwuhan (制怒·三思而后行) 本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教...他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~~ 一:select模型 老陈非常想看到女儿的信。...begin if SleepEx( RECV_TIME_OUT, True ) = WAIT_IO_COMPLETION then // begin ; end else begin continue;...IOCP,把远程连接的socket句柄绑定到刚才创建的IOCP上,最后创建n个线程,并告诉这n个线程到这个IOCP上去访问数据就可以了。...它会自动调配访问它的线程:如果某个socket上有一个线程A正在访问,那么线程B的访问请求会被分配到另外一个socket。这一切都是由系统自动调配的,我们无需过问。

    93210

    koa+socket.io尝试简单的web动作同步

    准备工具 koa : @1.1.2 socket.io : @1.5.0 其中koa并没有什么特别意思,只是作为一个服务器存在,用express或者其他什么都可以。...socket.io是我们需要的通讯库 原理 1、 前端捕获正在发生的动作action,和触发动作的元素target,通过客户端socket传输到服务器socket; 2、 服务器socket接收到信息,...再将信息广播到其他所有客户端socket; 3、 其他客户端socket接收到广播信息,使特定的元素target触发特定的动作action 服务端准备 服务器的准备很简单:搭起服务器,接入socket.io...发送正在发生的动作和目标元素 正式做click动作的全局时间监听 //transcribe.js //启动socket连接 var socket = io(); document.addEventListener...完善服务器,做成代码植入的形式。 玩起来还是乐趣无穷的。

    98300

    java的Socket编程-服务端

    Java的Socket编程是一种基于TCP/IP协议的网络编程,可以实现进程之间的通信和数据传输。Java的Socket编程主要包括两部分:服务器端编程和客户端编程。...服务器端编程用于监听客户端的请求并处理请求,而客户端编程则用于向服务器端发送请求并接收响应。...一、服务器端编程 Java的服务器端编程主要包括以下几个步骤: 创建服务器端Socket对象 在服务器端编程中,首先需要创建一个ServerSocket对象,该对象用于监听客户端的请求。...Socket socket = serverSocket.accept(); 上面的代码会阻塞程序的执行,直到有客户端连接上来。...处理客户端请求 一旦连接建立成功,服务器端就可以开始处理客户端的请求。服务器端可以使用输入流从客户端读取数据,然后使用输出流向客户端发送响应数据。

    1.4K30

    第七十三期:Node中的IO操作(socket 通信)

    我们呢,可以把它理解为一种可读可写的文件,本质上还是一个数据容器。 在一些操作系统上它其实是一种特殊类型的文件,它实现起来更加复杂。...,一个运行server.js另一个运行client.js 你会发现它们两个之间的通信过程: 中间的过程 我们用net.createServer方法实例化了一个TCP服务。...这个服务会返回一个net对象,监听了4000端口。然后它有个回调函数,每次有新链接进来时都会触发这个回调,并且它接收socket作为参数,我们可以监听整个socket数据进行处理。...同样,我们的client.js用net.connect方法链接到了4000端口上的服务,同样它也监听了data和close事件,这样,客户端和服务端就可以进行通信了。...(require('net').connect(4000)).pipe(process.stdout) 这样,你在客户端的终端输入什么,服务端直接给我们返回。

    41920

    Java(Android)与C++之间的Socket通信

    Java与C++之间的Socket通信,对于小的数据量和控制命令,直接可以封装成json或xml格式,进行传输。但对于文件等大数据量传输,必须要将文件封装成帧,每一帧都设定固定大小的缓冲区,逐帧传输。...C++缓冲区一般使用char型,但是java中没有char型,相互之间传输的数据,如何接收解析? C++常用的特殊类型:结构体,如何解析成Java中的类。...即使是两者都具有的枚举类型,两者的机制是不一样的,如何进行对接? Java端和C++端,发送给socket的数据形式是什么?char数组型还是字节型C++端又有何种形式进行接收?...接收到的数据又如何正确解析出来? 字节序问题。Java为大字节序,而大部分PC主机C++都是小字节序,大小字节序和网络字节序相互之间的转化,也是需要考虑的问题。

    1.1K30

    Android 基于TCP的 Socket 编程实现(结合 okio)

    基于TCP的 Socket 基于 TCP 的 Socket可以实现客户端—服务器间的双向实时通信。...具体的实现步骤在我另外一篇循序渐进Socket网络编程(多客户端、信息共享、文件传输)中有很详细的描述,接下来看 Android 端如何实现基于 TCP 的 Socket 连接。...okio 实现 到这里一个简单的 Socket 通信就完成了,其中对于 Socket 的信息流使用的是 java.io,之前学习 okio 时,了解到 okio 可以替代 java.io,okio是一个由...总结 Android 有两种通信方式,一种是常用的基于 HTTP 协议方式,另一种就是基于 TCP/UDP 协议的 Socket 方式。...本文主要通过 Socket 实现了 Android 基于 TCP 协议的通信,后面将 Socket 的输入输出流处理由 java.io 替换为 Okio 实现,虽然说 Okio 弥补了Java.io和

    2.8K10
    领券