Socket.IO 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Socket.IO 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Socket.IO 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Socket.IO 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Socket.IO 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 彭博
适用人群 未知
收录时间 2012-03-13

软件简介

Socket.IO 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。

Socket.IO 是跨平台,多种连接方式自动切换,做即时通讯方面的开发很方便,而且能和expressjs提供的传统请求方式很好的结合,即可以 在同一个域名,同一个端口提供两种连接方式:request/response, websocket(flashsocket,ajax…).

示例代码:

var io = require('socket.io')(80);
var cfg = require('./config.json');
var tw = require('node-tweet-stream')(cfg);
tw.track('socket.io');
tw.track('javascript');
tw.on('tweet', function(tweet){
  io.emit('tweet', tweet);
});
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (7)

加载中
劣势:Socket.io并不是一个基本的、独立的、能够回退到其它实时协议的WebSocket库,它实际上是一个依赖于其它实时传输协议的自定义实时传输协议的实现。该协议的协商部分使得支持标准WebSocket的客户端不能直接连接到Socket.io服务器,并且支持Socket.io的客户端也不能与非Socket.io框架的WebSocket或Comet服务器通信。因而,Socket.io要求客户端与服务器端均须使用该框架。
2020/08/13 18:45
回复
举报
打分: 力荐
不错,简短精炼
2017/03/31 17:24
回复
举报
这玩意浏览器兼容性如何? Socket.IO
2013/09/08 20:29
回复
举报
Socket.IO 玩起来挺带感~
2013/11/21 22:03
回复
举报
2016/11/24 09:40
回复
举报
包括一个服务器端实现,和一个客户端实现 #Socket.IO#
2016/11/24 09:45
回复
举报
2016/11/24 10:51
回复
举报
更多评论
发表了资讯
2017/05/19 10:28

Socket.IO 2.0 发布,实时应用程序框架

Socket.IO 2.0.0发布了! Socket.IO对于实时性的聊天应用开发非常方便,它基于Websocket协议开发,但可惜的是性能不足,内存占用也一直是个问题。但是令人非常期待的是,这次版本的发布主要带来了一些性能上的提升: 现在使用uws作为默认的websocket引擎。它将带来巨大的性能提升(特别是内存的消耗)(Engine.IO版本说明) Engine.IO和Socket.IO的握手包被合并了,减少了一个连接的建立(#2833)。 现在可以为你的应用定义自定义...

10
63
发表了资讯
2016/01/09 00:00

Socket.IO 1.4.1/1.4.2/1.4.3,支持 NativeScript

Socket.IO 1.4.1, 1.4.2/1.4.3 发布,这是三个解决了不同环境构建问题的三个版本,主要改进: Socket.IO-client 包括最新版本的 engine.io-client 修复绑定 webpack 相关的问题 Socket.IO 支持 NativeScript 更多改进内容请看发行说明。 Socket.IO 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。 Socket.IO 是跨平台,多种连接方式自动切换,做即时通讯方面的开发很方...

2
19
发表了资讯
2015/07/16 00:00

Socket.IO 1.3.6 发布,bug 修复版本

Socket.IO 1.3.6 发布,此版本修复了 Windows 上 ws 模块的一个构建问题。 安装: <script src="https://cdn.socket.io/socket.io-1.3.6.js"></script> Socket.IO 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。 Socket.IO 是跨平台,多种连接方式自动切换,做即时通讯方面的开发很方便,而且能和expressjs提供的传统请求方式很好的结合,即可以 在同一个域名,同一...

4
32
发表了资讯
2015/03/04 00:00

Socket.IO 1.3.5 发布,解析器修复

Socket.IO 1.3.5 发布,此版本解决了一个解析器的问题,建议更新,完全向后兼容。 <script src="https://cdn.socket.io/socket.io-1.3.5.js"></script> Socket.IO 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。 Socket.IO 是跨平台,多种连接方式自动切换,做即时通讯方面的开发很方便,而且能和expressjs提供的传统请求方式很好的结合,即可以 在同一个域名,同一...

1
15
发表了资讯
2015/02/16 00:00

Socket.IO 1.3.4 发布,BUG 修复版本

Socket.IO 1.3.4 发布,此版本修复了 Socket.IO 1.3.3 的构建问题,外部代码不可用的问题。 Socket.IO 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。 Socket.IO 是跨平台,多种连接方式自动切换,做即时通讯方面的开发很方便,而且能和expressjs提供的传统请求方式很好的结合,即可以 在同一个域名,同一个端口提供两种连接方式:request/response, websocket(flash...

4
10
发表了资讯
2015/02/05 00:00

Socket.IO 1.3.3 发布,修复解析器的 BUG

Socket.IO 1.3.3 发布,此版本向后兼容,强烈建议升级! 修复了解析器的 bug 如果你不手动为服务器的 Socket 对象指定一个 error 事件处理器,将会在工作台发出错误警告 使用 CDN 升级: <script src="https://cdn.socket.io/socket.io-1.3.3.js"></script> Socket.IO 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。 Socket.IO 是跨平台,多种连接方式自动切换,做即...

1
29
发表了资讯
2015/01/20 00:00

Socket.IO 1.3.0 发布

Socket.IO 1.3.0 发布,此版本改进内容如下: 服务器 Socket.IO 1.3.0 包括大量的 bug 修复,稳定性和性能提升,可以使用自定义 SSl 和重连接补偿参数配置客户端。 Fix tests on Node v0.11 (dba462) [rauchg] Fixed socket.io test runs on windows (19c442) [rauchg] null and undefined origins trigger the origins callback properly with origin value * (GH#1936) [drewblaisdell] Updated debug version to 2.1.0 (GH#1...

7
29
发表了资讯
2014/11/23 00:00

Socket.IO 1.2.1 发布

Socket.IO 1.2.1 发布,此版本包括非常重要的 bug 修复,改进了 CDN 的 DNS 服务的可靠性(导致在 2014 年 11 月 5 日有一次短暂的停机)。 改进记录 服务器 Bumped engine.io to include a fix for leaks in the ws WebSocket Server. Thanks @3rd-Eden for his ws patch. Prevent a crash that arises from a socket.io-protocol violation. Sending a null engine.io message packet would throw an exception, which wasn’...

1
45
发表了资讯
2014/10/28 00:00

Socket.IO 1.2.0 发布,重要 bug 修复和 API 更新

Socket.IO 1.2.0 发布,包括重要的 bug 修复和一些 API 更新。 更新内容如下: 服务器 Fixed the npm main property in the chat example (GH#1766) [BrianGeppert] Some grammar fixes to the chat example strings (GH#1784) [matthewcanty] Fixed room autopruning (memory leak fix) (GH#2 GH#12) [hallucynogenyc & rase-] Added tests to check room autopruning (GH#1792) [rase-] Fixed the backwards compatibility op...

3
20
发表了资讯
2014/09/05 00:00

Socket.IO 1.1.0 发布

Socket.IO 1.1.0 发布,此版本包括了大量的 bug 修复和许多新插件。此版本一共有 20 位贡献者。 服务器 hasBin no longer iterates over object prototypes (GH#1645) [kevin-roark] Enhanced font styles in the chat example app (GH1653) [acusti] Fixed etag header in server socket.io.js (GH#1655) [ysmood] Fixed repo url in package.json (GH#1673) [bryanburgers] Improved namespace and disconnection tests (GH) ...

13
27
发表了资讯
2014/05/29 00:00

Socket.IO 1.0 发布

Socket.IO 1.0 发布了,该版本主要新特性包括: New engine Binary support Automated testing Scalability Integration Better debugging Streamlined APIs CDN delivery Future innovation Credits 上述新特性的详细介绍请看发行说明。 Socket.IO旨在让各种浏览器与移动设备上实现实时app功能,模糊化各种传输机制。...

15
67
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2016/09/28 19:41

socket.io

前言 socket.io是一个跨浏览器的支持webSocket的实时通讯的js, 官网地址为 http://socket.io/docs/ 针对api是英文的,再次做了一次翻译和诠释 socket.io主要是server.js的编写,客户端是机器简答的写法,只要引用socket.io.js即可 $ npm install socket.io 使用该命令来安装socket.io 连接方式 目前有这么几种连接方式可供选择,socket.io单独连接,配合http模块,以及配合express框架的使用 1.单独连接 var io = require('sock...

0
1
发表于服务端专区
2016/10/23 13:56

Socket.IO

1.Socket.IO类库可以接受所有与服务器端相连接的客户端发送的消息,也可以向这些客户端 发送消息. 在服务器与浏览器之间提供一个共享接口,也就是说客户端与服务器建立连接之后再处理消息时,开发者可以在客户端使用拂去其端的javascript代码 Socket.IO可以用于实现以下几种通信方式 HTML5中的WebSocket通信 可在Flash中使用的WebSocket通信 XHR轮询 JSONP轮询 Forever Iframe Socket.IO确保在实现这些通信方式时,客户端与服务器端...

0
0
发表了博客
2019/05/13 13:32

IO之Socket网络编程

一、Socket   Socket不是Java中独有的概念,而是一个语言无关标准。任何可以实现网络编程的编程语言都有Socket。 1,Socket概念   网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。   建立网络通信连接至少要一个端口号。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具...

0
0
2016/10/15 11:34

基于io的socket编程

传统的socket io中,如果需要同时接受多个连接的时候。必须要使用多线程,为每一个连接创建一个线程。这样在连接数量比较大的情况,线程的数量也随之变大。虽然这样编程简单,但是缺点也十分的明显,就是大量的线程占用的大量的资源(内存和cpu的开销)。不管怎么样,我们先编写一段程序,了解一下io编程的特点。(ps:程序不是很完善,请多担待) 单线程服务端程序: public class SingleThreadSocketServer { public stat...

0
0
发表于大前端专区
2016/10/11 14:59

Socket.io学习

服务器端和客户端实现实时通讯的技术,服务端运行在nodejs平台,客户端运用javascript脚本 服务端: 创建socketio-demo文件夹,并进入此文件夹 第一步:安装node,npm(自行补脑) 第二步:了解vim基本操作 参考文章 http://blog.csdn.net/youngkingyj/article/details/22713965 插入模式:i 命令行模式:esc 保存并推出::wq 推出不保存::q! 第三步:创建package文件 vi package.json 第四步:安装express,检查express cnpm ...

0
0
发表于软件架构专区
2016/10/21 18:30

node-socket.io入门

WebSocket WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。 现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客服端的浏览器,这种方式有一个很大的弊端,就是会占用很多的带宽。 最新的轮询效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求。 使用WebSo...

0
0
发表于AI & 大数据专区
2016/10/21 18:41

node-socket.io进阶

前言 在入门篇中,我们学习了如何创建一个简单的socket服务器,并实现客户端和服务端的通讯。但是在生产环境中,显然这样简单的功能是不够的,所幸socket.io提供很多有趣的功能,来帮助我们将想法变成实际。 进阶篇主要主要关注两个方面。 第一,讲解socket.io提供的进阶功能。 第二,结合使用场景,通过进阶功能来实现需求。 发送信息 socket.io既然是用来实现通讯的,那么如何发送、接收信息才是根本。 在socket.io中,emit函...

0
1
发表了博客
2016/11/26 14:28

java socket IO和NIO的对比

先上一个最基本的socket io的例子,首先是server端: ServerSocket serverSocket = new ServerSocket(PORT); while (true) { Socket client = serverSocket.accept(); new HandlerThread(client); } DataInputStream input = new DataInputStream(socket.getInputStream()); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); while(true){ String clientInputStr = input.readUTF(); } 首先new一个Ser...

0
0
2016/12/29 09:47

SOCKET io 中flush的坑

最近生产上出现了个问题,在A机写入的2900个字节,到B机收到只有1432个字节,初步怀疑是网络丢包或者是A机没有完全刷入流中,基于这个思路,在A机写的时候加入out.flush(); 后来在读源码的时候发现,socket的outputStream 实现是SocketOutputStream, 继承自FileOutputStream,无论SocketOutputStream还是FileOutputStream都没有重写flush方法,outputStream 的flush没有任何操作,所以此处添加的flush方法无效。 flush作用 fl...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于大前端专区
2020/02/05 19:05

nodejs 与swoole 如何通讯?

服务器用的php和swoole搭配构建的tcp客户端,还挺好,最近因需求驱动,需要nodejs写一些东西,要调用服务器的数据采用tcp链接的形式,但是查了查nodejs 的手册竟然毫无头绪,有谁用过类似的组合?nodejs应该如何链接swoole 的服务器 swoole服务器启动代码大致如下 $swoole_server = new \Swoole\Server('0.0.0.0', 9502, SWOOLE_PROCESS, SWOOLE_SOCK_TCP); $d_option = [ 'open_length_check' => true, 'package_max_...

2
0
发表了问答
2017/03/03 10:48

socket.io只能在127.0.0.1上用,换一个ip就不行了,什么鬼?

用socket.io的官方例子修改的服务器端和客户端,直接默认绑定了3000端口。 用http://127.0.0.1:3000/index.html?roomid=1001 这个地址能访问。 换成http://192.168.1.111:3000/index.html?roomid=1001 就不能聊天了。真实无语了,求哪个大神指导下。 试了客户端修改 var socket = io('ws://192.168.1.111:3000/socket.io/'); 不行。 又试了修改服务器端 server.listen(port,‘192.168.1.111’)也是不行。 求大神指导指导...

15
0
发表了问答
2017/06/14 22:02

一个nodejs聊天室客户端的socket.emit,而服务端socket.on接收不到的问题!

如上所示三个截图,明显的,客户端和服务端通过socket 7130 端口建立了连接和信息反馈, 可是:为什么客户端的socket.emit('cnn',userinfo)的信息,服务端相应的socket.on('cnn', function(data) { 接收不到呢???? 看上面三张截图,两端明显都已经执行到了上面的两个各自的socket程式。疑惑不解啊! 补充说明一下: 就是说服务端的 io.on('connection', function(socket) { //io.sockets.on debuglog('连接```*`成功'); //进...

2
0
发表了问答
2014/06/10 23:04

怎么使用 Socket.io 连接 WebSocket 服务?

服务端使用 WebSocket 的接口,要求用例如 ws://localhost/hello 这样的连接。 使用 Socket.io 该如何连接这个 WebSocket 服务呢? [补充] 是在浏览器上直接用 Socket.io 跟 WebSocket 服务通讯。

25
3
发表了问答
2014/11/03 13:50

sokect.io做消息服务器的跨域问题

最近Java项目需要做一个消息服务器,实现服务端的消息推送功能。由于之前有做过基于sokect.io和node的聊天程序,因此在本项目中采用sokect.io的java实现netty-socketio。在开发机上端口安排如下: WEB端口:8097 socket端口:12016 开发机中使用localhost做为联接地址,测试没有问题,消息可以正常推送。 但是把代码部署到服务器中,则出现错误:GET http://xxx:12016/socket.io/?EIO=3&transport=polling&t=1414987854908-546...

4
0
发表了问答
2016/11/10 18:07

前端socket.io连接后端websocket

因为要做实时推送。后端是java的。springboot +websocket。前端使用socket.io。 如果遇到低版本不支持websocket的浏览器,想问下具体的底层机制,socket.io会自动采取long polling技术,longpooling是怎么实现的呢?我后端又没有提供http接口,他怎么知道连哪里? 还是说我后端也必须才有socket.io才行,现在有相应的框架支持吗? 或者,还有没有其他方案。...

2
0
发表了问答
2016/12/30 15:14

【新手】关于socket.io重复获取数据(关联websocket)

直接上代码(有点乱,下面有我的直接描述): 服务器端: io.sockets.on('connection', function (socketIO) { // 测试用,连接成功 socketIO.emit("test","your websocket has connected"); //返回数据使用,控制C服务器 socketIO.on('fromWebClient', function (webClientData) { }); // 从C服务器接收数据 nodeServer.on('data', function (data) { if(data.readUInt8(0)==170){ sbuf.writeUInt32LE(l...

1
1
发表了问答
2016/08/31 20:14

nodejs+socket.io用nginx反向代理websocket ws 400 错误

@mrZhan_223 你好,想跟你请教个问题: nodejs+socket.io用nginx反向代理websoket,在linux上总是提示ws 400错误,在win7上一样的代理配置就没这个错。 这个问题很是困扰我,在网上搜索了很多资料,还是没有解决,我不知道是不是我的Nginx安装是否缺少什么模块,还是linux服务器需要什么要求 报错: 配置: 我看您这边情景有点相似,研究得蛮深的,希望您能赐教...

5
0
发表了问答
2015/03/22 15:08

汇通直播室是怎么实现的,有研究这一方面的大神么

我看到汇通直播室,是实时更新的新闻,思考力一下背后逻辑,没有想通整个运作流程,包括他的信息采集,信息实时显示,服务器压力的问题,都没穿起来,望大神赐教。汇通直播室地址:http://zhibo.fx678.com/

5
3
发表了问答
2015/03/21 13:26

Socket.IO的前端能否运行在其他http服务器甚至静态html中?

我看Demo里对Socket.IO都是以NodeJS为服务器的,NodeJS会对index.html做些处理,比如脚本替换等等。 现在我不想把index.html放在nodejs的http服务器中,而是完全静态的一个本地html,与后端的Socket.IO服务器通信,请问能否实现?

3
0
发表了问答
2015/08/01 16:05

如何让动态产生的li element可以bind客制化的套件呢??

网上下载了一组叫做"hovercard"的套件想要用在jQuery动态产生的<li>element里面,但是选择器一直无法与动态产生的元素绑定,有网友说,可能要用到jQuery method $('').on,,套件还会用上{object}物件参数,因此实在不清楚确切的用法,想请专家们,我该如何处理呢? $(document).ready(function () { socket.on('updateUserList',function(data){ console.log(data); i=0; $("#onlineMemberLis...

3
0
发表了问答
2014/07/18 10:47

node.js express4.2 socket.io整合后socket.io获取不到链接

项目直接用express socket构建,使用的express为4.2版本,简单修改aap.js中的内容。 我是node.js新手。。。。 客户端写了简单的程序来访问socket.io,日志中能够打印出来客户端发送的socket.io请求,但是服务端的socket.io服务根本获取不到链接。 下边是app.js的内容,看了好长时间,网上找了好久但是还是不起作用。 var express = require('express'); var path = require('path'); var favicon = require('static-favicon'); v...

6
0
发表了问答
2015/03/17 09:39

老版本中io.sockets.socket(socketId) 的替代方法

如题,在高版本中如何实现的的啊,是不是一定要自己键一个映射啊

1
0
发表了问答
2015/06/01 10:18

npm install socket.io

正确安装nodejs后,再安装socket.io; 用的npm install socket.io命令 以下是报错 C:\Program Files\nodejs>npm install socket.io - > ws@0.5.0 install C:\Program Files\nodejs\node_modules\socket.io\node_modules\engine.io\node_modules\ws > (node-gyp rebuild 2> builderror.log) || (exit 0) C:\Program Files\nodejs\node_modules\socket.io\node_modules\engine.io\node_modules\ws>if not defined npm_config_node...

6
1
发表了问答
2015/05/13 17:55

关于socket通讯close之后,网络不通的问题

碰到一个问题,请大家帮帮忙! 这是一段本地(客户端)发送报文到服务端的代码;服务端接收到通知报文,会到客户端读取数据.现在碰到的问题是,执行finally中的内容后,客户端与服务端的网络就断开了,请大神指点指点!(备注一下,客户端与服务端的网络,是通过电话拨号连接的) public Boolean send20002(String reportDate) throws Exception { Socket client = null; BufferedOutputStream outputSt...

9
0
发表了问答
2015/03/05 17:20

Go vs Erlang-两个语言在实战中的比较

因为 云巴 http://yunba.io 系统对高并发、低延迟的需求,我们对各个语言、平台做了很多的调研比较工作。这自然就包括致力于开发高并发应用的 Go 和 Erlang。 并发 Go 对高并发的支持通过 goroutine 实现。goroutine 可以理解为轻量级的 线程(thread)。同一个 Go 应用创建的 goroutine 共享地址空间。 Erlang 的高并发通过轻量级 进程(process)实现,每一个进程都有独立的状态记录。 另外,使用 goroutine 要注意,gorouti...

2
9
发表了问答
2014/07/31 11:31

关于socket.io升级到1.0.6后socketio-netty的跨域问题

@hiyongboy 你好,想跟你请教个问题:我这两天有在使用socketio-netty搭建web服务器,之前前端使用socket.io.js的0.9.6的版本时,运行正常,能达到我要的效果,但是当我把socket.io.js升级到1.0.6后,页面就一直在报跨域的问题并且无法取得数据(我用的ie11,升级前transport都走websocket,升级后反而是polling,且一直循环报http://192.168.1.107:9988/socket.io/1/?t=1406777049175 的 XMLHttpRequest 需要跨域资源共享(CORS...

3
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
7 评论
324 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部