node.js - 是否可以让 IRC 客户端使用 websockets 运行您自己的 IRC 服务器而无需 websockets 网关?

标签 node.js sockets meteor websocket irc

我正在计划建立一个 IRC 网络并一直在探索各种选择。我打算使用Inspircd IRC Server 。以及运行 meteor 的网络服务器。是否可以使用 websockets 构建一个 Web IRC 客户端而不使用 webscokets 网关(以减少网络服务器上的负载)并直接连接到 IRC Inspircd 盒子?

其次,如果上述答案为"is",那么拥有 IRCclient <-> IRCServer 的优点/缺点是什么?与 IRCclient <-> WebScoketGateway (/webserver) <-> IRC Server关系。

我看到大多数涉及 Node 或 Meteor 的模块(包括 socket.io )都使用 WSGI,这是为什么?我在这里遗漏了什么吗?

请注意,在这种情况下,IRC 服务器和 Web 服务器都是由我运行的,因此有可能使浏览器认为两者是相同的盒子。

最佳答案

Is it possible to build a web IRC client with websockets and NOT using a webscokets gateway (to reduce load on webserver) and directly connect to the IRC Inspircd box?

没有。 WebSocket 是 HTTP 内部的一层,即客户端发送带有升级 header 的 HTTP 请求,服务器以确认升级请求的 HTTP 响应进行响应。数据作为二进制消息(具有自己的框架)进行交换,并且通常还与某个 key 进行异或。

因此,您不能向非 WebSocket 服务器发送任意数据,也不能发送 IRC 数据,但您需要一个网关来将 WebSocket 握手和帧转换为普通 TCP。

关于node.js - 是否可以让 IRC 客户端使用 websockets 运行您自己的 IRC 服务器而无需 websockets 网关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31205937/

相关文章:

node.js - NodeJS 和 TLS,获取客户端证书

javascript - 客户端调用的 api 方法内的 HTTP GET

linux - 如何在写入数据时通过 UDP 套接字发送数据?

ruby - Ruby:您可以发送套接字作为参数吗?

python - celery :socket.error 超时

javascript - Meteor 中的简单文件上传

debugging - 如何在Meteor应用中调试服务器端代码

javascript - Sequelize 查询 SELECT * FROM Table 只返回一行

javascript - 为什么 jade 忽略\n 和空格?

javascript - 我应该如何使用外部脚本构建一个 Meteor 项目?