通过 Socket.IO 的 WebSocket 设计模式

     2023-03-07     127

关键词:

【中文标题】通过 Socket.IO 的 WebSocket 设计模式【英文标题】:Design pattern for WebSockets through Socket.IO 【发布时间】:2016-06-23 16:52:51 【问题描述】:

我正在使用 WebSockets 构建一个复杂的聊天应用程序。我使用 Node.JS 的 Socket.IO 库来实现协议。我应该为每个聊天创建单独的命名空间,还是为每个聊天创建单独的房间?

Socket.IO 中的命名空间和房间的主要区别是什么?

【问题讨论】:

【参考方案1】:

如果所有客户端都属于同一类型,通常会使用房间。

如果有不同类型的客户端,请使用命名空间。例如,匿名用户和经过身份验证的用户。在这种情况下,可能需要以不同的方式处理传入的连接请求。

var guest = io.of('/guest');
guest.on('connection', function(socket) 
   console.log('A guest client connected');
);

var user = io.of('/user');
user.on('connection', function(socket) 
   var authenticated = authenticate(); //authenticate the user
   if (!authenticated) 
      // log attempt and disconnect the client
   
);

【讨论】:

怎么使用socket.io连接websocket服务

参考技术Asocket.io封装了websocket,同时包含了其它的连接方式,比如Ajax。原因在于不是所有的浏览器都支持websocket,通过socket.io的封装,你不用关心里面用了什么连接方式。你在任何浏览器里都可以使用socket.io来建立异步的连接... 查看详情

聊天功能插件socket.io(代码片段)

...Socket.io是什么  是基于时间的实时双向通讯库  基于websocket协议的  前后端通过时间进行双向通讯  配合express快速开发实时应用二、Socket.io和ajax区别  基于不同的网络协议  ajax基于http协议,单向,实时获取数据... 查看详情

通过 PHP 连接到 socket.io(nodejs)

...间】:2014-09-1621:23:40【问题描述】:我需要通过php连接到websocket,发送数据并立即断开连接。无需等待套接字的响应。我使用了elefant.io,但更新库后不起作用。请告诉我如何通过PHP连接到websocket?【问题讨论】:【参考方案1】... 查看详情

socket.io简介

websocket是一种比较简单的协议,各种语言中都有很多实现版本,实际上它们差别不大,都是在websocket的基础上做些封装,随便选一个即可。socket.io就是众多websocket库中的一种,它并不像其它库那样简单地实现了一下websocket,而是... 查看详情

websocket——通信梳理(短轮询、长轮询、socket、websocket、socket.io)

...ket只可发送文本信息,而通常通信中需要用到二进制信息websocket1、客户端通过http向服务端发起第一次握手,握手成功后将由ws、wss替代后续的请求;第一次握手成功后,客户端即与服务端维持一个长连接:服务端可自主向客户... 查看详情

独立 websocket 服务器的 Socket.io“无效帧头”错误

】独立websocket服务器的Socket.io“无效帧头”错误【英文标题】:Socket.io"Invalidframeheader"errorwithindependentwebsocketserver【发布时间】:2019-04-1008:59:23【问题描述】:有没有办法让单独的websocket服务器在不同的路径上与socket.io一... 查看详情

用socket.io实现websocket的一个简单例子

http://biyeah.iteye.com/blog/1295196 socket.io的介绍http://www.cnblogs.com/mazg/p/5467960.html  websocket在线测试http://www.blue-zero.com/WebSocket/ 查看详情

带有 socket.io 和 express 的 Websocket

】带有socket.io和express的Websocket【英文标题】:Websocketwithsocket.ioandexpress【发布时间】:2016-10-2021:16:06【问题描述】:我正在尝试将socket.io与express一起使用,我使用了express生成器。我无法从控制台查看任何日志。在写这篇文章之... 查看详情

socket.io - XHR 轮询与 flashsocket 和 websocket

】socket.io-XHR轮询与flashsocket和websocket【英文标题】:socket.io-XHRpollingvsflashsocketandwebsocket【发布时间】:2012-02-0617:32:59【问题描述】:我使用node.js和socket.io。我对socket.io的连接速度有疑问。在InternetExplorer和Opera中,我的连接速度... 查看详情

回退如何与 socket.io 一起工作?

...et.io?【发布时间】:2015-12-2917:39:02【问题描述】:我想将WebSocket与Java一起使用。问题是,我的服务器通过无法配置的代理与客户端分开。我一直在寻找WebSocket的实现以及long-polling等后备选项。我找到了socket.io,但不知道后备是... 查看详情

node.js 和 socket.io。 websocket的传输类型配置?

】node.js和socket.io。websocket的传输类型配置?【英文标题】:node.jsandsocket.io.transporttypeconfigurationforwebsocket?【发布时间】:2012-12-2907:51:52【问题描述】:这个问题涉及我在两周内测试了nodejs和socket.io。当我开始时,我从客户端中的... 查看详情

Websocket 不能在 heroku 中使用 socket.io

】Websocket不能在heroku中使用socket.io【英文标题】:Websocketnotworkingwithsocket.ioinheroku【发布时间】:2013-11-0904:45:20【问题描述】:我的应用程序在localhost中使用websockets和xhr-polling在socket.io中运行良好,并且在heroku中使用xhr-polling,但... 查看详情

与 nginx、nodejs 和 socket.io 的 WebSocket 连接失败

】与nginx、nodejs和socket.io的WebSocket连接失败【英文标题】:WebSocketconnectionfailedwithnginx,nodejsandsocket.io【发布时间】:2013-12-2110:56:44【问题描述】:我尝试使用nginx设置nodejs。但是当客户端尝试连接时,它会失败...WebSocketconnectionto\'w... 查看详情

socket.io 是不是将传输从轮询升级到 websocket?

】socket.io是不是将传输从轮询升级到websocket?【英文标题】:Doessocket.ioupgradetransporttowebsocketfrompolling?socket.io是否将传输从轮询升级到websocket?【发布时间】:2014-12-2320:30:31【问题描述】:我正在使用带有socket.io的nodejs和express框... 查看详情

socket.io入门原理

...端与服务端一致的编程体验,于是socket.io诞生。Socket.io将Websocket和轮询(Polling)机制以及其它的实时通信方式封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。也就是说,Websocket仅仅是Socket.io实现实时通信... 查看详情

Socket.IO 上的 PHP 应用程序 + 基于 WebSocket 的通知

】Socket.IO上的PHP应用程序+基于WebSocket的通知【英文标题】:PHPapplication+WebSocketbasednotificationsoverSocket.IO【发布时间】:2012-08-2608:33:42【问题描述】:我有一个使用laravel用PHP编写的Web应用程序。现在,我必须添加实时通知系统,从... 查看详情

带有 Websocket 或 Socket.io 的 Vue.js 实时图表

】带有Websocket或Socket.io的Vue.js实时图表【英文标题】:Vue.jsRealtimeChartwithWebsocketorSocket.io【发布时间】:2020-12-1914:12:51【问题描述】:我在我的项目中使用vue.js。我也为我的数据使用websocket。每一秒都有数据。我需要在我的项目... 查看详情

Node.JS WebSocket 和 Socket

】Node.JSWebSocket和Socket【英文标题】:Node.JSWebSocketandSocket【发布时间】:2011-10-0720:36:07【问题描述】:我想混合普通socket和WebSocket两种流。所有收到的套接字消息都应该通过websocket广播给所有连接的用户。我有这部分代码:varnet=... 查看详情