繁体   English   中英

没有 node.js 的 Socket.io 客户端

[英]Socket.io client without node.js

我想要一个连接(是客户端)到 socket.io/node.js 后端的网页,但该网页不应该通过/开始使用 node.js 提供,而应该是一个单独的项目,没有任何 node.js 用法。

我怎样才能做到这一点?

Socket.io带有两个独立的库,一个用于客户端使用,另一个用于创建服务器。
客户端库既可以在 Web 浏览器中使用,也可以在 Node.js 应用程序中使用。
服务器库需要 Node.js。

因此,重要的是使用 Node.js 实现 Socket.IO 服务器,然后使用客户端库连接到它。

为了在网页中使用 Socket.IO 客户端库,您只需使用script标记将其包含在页面中,然后连接到您的服务器:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:8080');
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
</script>

您可以使用任何您想要的技术来提供您的 HTML 页面; 例如,您可以使用 Django 框架和 Python 作为其后端来生成 HTML 页面。 或者简单地运行一个 Web 服务器(例如 Nginx),甚至在您选择的浏览器中将 HTML 页面作为文件打开。

没有明确要求在服务器端使用节点。 例如,Flask 使用 python 作为服务器端库: https : //flask-socketio.readthedocs.io/en/latest/

socket.io 也有一个 C 服务器库,我相信还有许多其他语言可以使用它。 这里的问题是所有节点文档都使用“/socket.io/socket.io.js”脚本 URL,这意味着 node.js以某种方式提供文件,但我们希望在不使用 Node 的情况下提供该文件。

在烧瓶示例中,看起来他们使用这个脚本标签来提供它:

<script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js" integrity="sha256-yr4fRk/GU1ehYJPAs8P4JlTgu0Hdsp4ZKrx8bDEDC3I=" crossorigin="anonymous"></script>

根据您的服务器端使用的内容,它们可能也有自己的客户端实现。 我个人建议阅读 socket.io 实现的文档,看看它们是否指定了客户端库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM