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

时间:2013-03-16 01:23:51

标签: javascript socket.io

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

我该怎么做?

2 个答案:

答案 0 :(得分:0)

Socket.io带有两个单独的库,一个用于客户端使用,一个用于创建服务器。
The client library既可以在Web浏览器中使用,也可以在Node.js应用程序中使用。
The server library需要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页面。或者只是运行网络服务器(例如Nginx),甚至在您选择的浏览器中以文件形式打开HTML页面。

答案 1 :(得分:0)

不明确要求使用服务器端的节点。例如,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实现的文档,以了解它们是否指定了客户端库。