我可以在浏览器中启动 socket.io/websocket 服务器吗?

2024-04-18

之前有人问过这个问题,答案是否定的。但是现在,有了 browserify/webpack,我可以像在服务器上那样编写代码吗?它会在浏览器中运行,还是有任何限制使这变得不可能?


你不能。在浏览器中启动服务器需要访问浏览器中根本不存在的低级功能。 Browserify 无法向浏览器添加基本的低级功能,因为浏览器不具备这些功能,因此需要额外的本机代码支持才能正常工作。

Browserify 只能打包纯 Javascript 的代码,或者构建在浏览器中已存在的基础设施之上的代码,或者可以使用构建在浏览器中现有功能之上的一些纯 javascript 进行模拟的代码。

因此,例如,您可以从 Node.js 获取一个纯 JavaScript 的加密哈希库,并且不依赖于浏览器中不存在的任何功能,并且您可以对其进行浏览器化(例如重新打包)以在浏览器中使用它。但是,您无法采用使用低级 UDP 通信的 Node.js 包,因为浏览器中不存在对 UDP 的底层访问。

一般来说,如果 node.js 代码执行 I/O 或操作其他进程或使用任何具有本机代码的模块,它可能无法与 browserify 一起使用(对于某些文件 I/O 有一些解决方法)。

有关更多信息,请参阅:

Browserify 有任何限制吗? https://stackoverflow.com/questions/41759020/does-browserify-have-any-limitations

浏览器兼容性 https://github.com/substack/node-browserify#compatibility


因此,您不会说出您要解决的实际问题是什么,但通常您会在某处启动一个实际的服务器,并让浏览器连接到该服务器。如果您希望某个特定的浏览器会话看起来是“主”,那么您当然可以让您的客户端/服务器以这种方式运行。一个客户端可以是连接到同一服务器的其他客户端的主客户端(看起来本质上是服务器本身)。这一切都取决于您如何对服务器进行编程以及它如何与连接到它的各种客户端进行通信。实际服务器可以成为其他客户端的代理,客户端可以通过与实际服务器的代理连接来访问类似服务器的功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在浏览器中启动 socket.io/websocket 服务器吗? 的相关文章

随机推荐

  • 创建一个加载器,其中线在中心形成一个圆

    这是我的代码 circle border 1px solid transparent border radius 50 width 100px overflow hidden div7 width 100px height 10px bac
  • 正确使用 zend 框架中的语言

    我有一个带有两个模块 管理和公共 的 Zend 应用程序 对于公共 我有以下插件来解析我的友好 URL class Custom Controller Plugin Initializer extends Zend Controller P
  • seq 和 list 之间的区别

    Clojure 语言中的 seq 和列表有什么区别 list 1 2 3 gt 1 2 3 seq 1 2 3 gt 1 2 3 这两种形式似乎被评估为相同的结果 首先 它们可能看起来相同 但实际上并非如此 class list 1 2 3
  • Android 中的文件浏览

    是否有特定的视图 小部件可用于浏览设备上的文件 或者还有其他已被接受的解决方案吗 搜索对我来说有用的信息很少 不幸的是 没有用于浏览文件的特殊视图 小部件 不过自己写也不是很难 谷歌搜索可以找到许多用于文件浏览的公共资源 意图 总体思路很简
  • Episerver - 为什么 BlockData 不实现 IContent

    有谁知道为什么 BlockData 类不直接实现 IContent 我知道在从数据库检索 BlockData 期间 Castle 创建的代理实现了 IContent 如果 StackOverflow 不适合此类问题 请移走它 EPiServ
  • 如何将内容安全策略与本地主机文件一起使用

    我的页面上出现以下错误 Refused to load the script http 127 0 0 1 35729 livereload js because it violates the following Content Secu
  • 在 JTable 中创建鼠标悬停信息面板?工具提示可能还不够

    我想在鼠标悬停时显示一个信息框JTable细胞使用Java 摇摆 所以有多个部分 如何捕获表格单元格中的鼠标悬停事件 我必须能够设置单元格内容 然后获取其数据 如何将鼠标悬停在该单元格上时显示带有动态服务器数据的面板 框 如何缓存信息面板
  • 在 R 中绘制顺序(时间序列)数据的子集

    我有一个类似于下面的数据框 称为 df 我想绘制这些数据的子集 例如May 2012 to June 2014 我一直在使用绘图函数来绘制整个数据框 但是 当我将其分成绘图的子集时 无论我选择数据的哪一部分 我都会得到相同的绘图 Jan F
  • 在 AngularJS 中发送 FormData 和其他字段

    我有一个表格有两个input text和一个upload 我必须将其发送到服务器 但在将文件与文本连接时遇到一些问题 服务器期望这个答案 title first input text second input file my file pd
  • 如何停止线程 - Qthread

    我必须在按下两个不同的按钮时启动 停止线程 请指出我的代码是否正确 我是否错过了 connect 调用中的某些内容 Problem我面临的是 在我的线程上调用 quit 后 然后我等待我的线程完成 但在线程上调用 wait never re
  • ARM Cortex A8 PMNC 读取在启用后也给出 0.. 有什么想法/建议吗?

    MODULE LICENSE GPL MODULE DESCRIPTION user mode access to performance registers int init arm init void unsigned int valu
  • 当自动为 WIX 安装程序收集文件时,我的目录结构有多灵活?

    请原谅我的无知 我一直在阅读一些书 但还没有准备好尝试任何东西 目前 我们有一个 wxs 文件 该文件无法轻松维护 每当从 SVN 提交 删除新文件时 都会手动添加 删除所有文件 由于在创建新文件和更新 wxs 安装文件之间发生了失误 我们
  • CSS 填充高度的 100%。不同的浏览器尺寸

    我有一个侧边栏 蓝色 设置为向左浮动 我已将高度设置为 100 将 body 和 html 高度设置为 100 它工作正常 问题是 当浏览器小于内容窗格 div 红色 时 侧边栏的高度将变得与浏览器的高度相同 因此 如果我向下滚动 侧边栏比
  • cmake中如何连接字符串

    有没有办法在cmake中连接字符串 我有一个仅包含具有主要方法的 cpp 文件的文件夹 我认为只需在所有 src 文件中使用 foreach 就很容易了 这就是我到目前为止所得到的 project opengl tutorial cmake
  • 将浮点值从大端转换为小端

    是否可以转换float是从大端到小端吗 我有来自 PowerPC 平台的大端值 我通过 TCP 将其发送到 Windows 进程 小端值 这个值是一个float 但是当我memcpy将值转换为 Win32 float 类型 然后调用 byt
  • 按类名称收集元素,然后单击每个元素 - Puppeteer

    使用 Puppeteer 我想获取页面上具有特定类名的所有元素 然后循环并单击每个元素 使用 jQuery 我可以通过以下方式实现此目的 var elements a showGoals toArray for i 0 i lt eleme
  • 在 LINQ 中返回 null 而不是默认值

    我有 LINQ 查询 它必须检索一些 DateTime 值 有时我没有匹配项 我必须为该 DateTime 值返回 NULL 而不是 DateTime 的默认值 如何避免这种情况并返回 NULL 而不是默认值 My LINQ Created
  • Zip 文件包含相同的文件但具有不同的哈希值?

    我使用 php 创建了数百个文件夹和文本文件 然后将它们添加到 zip 存档中 这一切都工作正常 但如果我使用相同的文件夹和文件创建另一个 zip 存档 新存档将具有与第一个存档不同的哈希值 如果我使用 winrar 而不是 php 创建存
  • Axis2C 非官方与 Axis2C 员工

    我将开发一个应用程序 该应用程序将使用一些基于 SOAP 的 Web 服务框架 我做了一些研究 我有点喜欢 Axis2C 框架 但在一些主题中 我发现最初的 Axis2C 实现存在内存泄漏 并且它的官方开发已停止 幸运的是 有 Axis2C
  • 我可以在浏览器中启动 socket.io/websocket 服务器吗?

    之前有人问过这个问题 答案是否定的 但是现在 有了 browserify webpack 我可以像在服务器上那样编写代码吗 它会在浏览器中运行 还是有任何限制使这变得不可能 你不能 在浏览器中启动服务器需要访问浏览器中根本不存在的低级功能