【问题标题】:Javascript SPA vuejs socket.io connectionJavascript SPA vuejs socket.io 连接
【发布时间】:2018-06-12 09:02:23
【问题描述】:

我对 vuejs、socket.io 和 nodejs 很陌生。

我编写了一个单页应用程序来在 nodejs 服务器(在 Raspberry pi 上运行)和 Siemens S7-1500 PLC 之间进行通信。这些是通过以太网连接的,raspi 为我提供了一个 wifi 接入点,用于通过智能手机、平板电脑或台式机控制 PLC。

我快完成了,但在那一点上我很挣扎。我正在使用 socket.io 向客户端发送事件。为此,我需要知道我的 vuejs 应用程序中的服务器的 IP 地址与 webpack 捆绑在一起。

当我尝试将我的应用程序部署到 Rapberry Pi 上时,我没有找到在我的应用程序内动态设置 IP 地址的方法。

也许你们中的一些人可以睁开我的眼睛,给我一个提示。

如何将 IP 地址发送给客户端?我的应用程序在本地运行,没有必要这样做。 在我看来,应该可以将服务器 ip 发送给客户端。

感谢您的回答:)

你好,丹尼斯

【问题讨论】:

    标签: node.js vue.js socket.io single-page-application raspberry-pi3


    【解决方案1】:

    您可以使用 linux ifconfig 命令从托管应用程序的主机命令行获取您的 IP。 IP不是您在应用程序级别设置的,但通常会自动分配给给定的主机。所以这取决于你的网络是如何设置的。

    寻找诸如“如何给你的树莓派一个静态 IP 地址”之类的东西。

    【讨论】:

    • 谢谢,但这不是问题所在。我正在寻找一种将服务器 ip 发送到前端的方法,以便将 socket.io 事件分配给正确的方向
    • 但是您的前端设置在后端?我可以想象 nodejs 后端可以访问当前 ip,因此它可以将 IP 输出到作为前端应用程序一部分的 js,然后在前端可以访问它。
    • 是的,在后端 express 提供静态内容以及 vuejs 应用程序,我找到了这样做的方法。我将硬编码的服务器 url 粘贴到 index.html 中,但我很确定,这不是正确的方法。
    • 我不知道如何说得更好 :) 你的前端 JS 现在是静态文件。这是一个问题。不应该是静态文件,而是模板。后端应该使用这个模板来生成将成为前端一部分的 js 文件。因此,您的 IP 将被注入到模板内的占位符中。这就像从后端生成带有 html 代码的前端网页一样,其中一些值来自数据库。
    • 检查这个:expressjs.com/en/guide/using-template-engines.html 并且链接仅指向 nodejs,因为您在后端使用它。同样的方法适用于 python 或任何其他后端堆栈...
    猜你喜欢
    • 2014-07-22
    • 1970-01-01
    • 2023-03-18
    • 2014-02-27
    • 2021-10-07
    • 1970-01-01
    • 2016-09-15
    • 2021-08-05
    • 1970-01-01
    相关资源
    最近更新 更多