Laravel echo,socket.io和laravel-echo-server将无法正常工作

时间:2016-09-02 03:20:20

标签: node.js laravel socket.io laravel-5.3 socket.io-redis

这可能是我遇到的最令人沮丧的事情,遗憾的是,这可能是我做过的蠢事。

以下是我正在使用的三件事的链接:

这是我的问题:我的网站不断点击这条路线:http://192.168.10.10:6001/socket.io。我不知道它为什么会这样做,因为我没有在我的代码中的任何地方定义socket.io部分。这是我在bootstrap.js中用来实例化Laravel Echo的代码。

import Echo from "laravel-echo"

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: 'http://192.168.10.10:6001'
});

这是我的socket.js文件(node.js)中的代码:

var echo = require('laravel-echo-server');

var options = {
  authHost: 'http://192.168.10.10',
  authPath: '/broadcasting/auth',
  host: 'http://192.168.10.10',
  port: 6001
};

echo.run(options);

到目前为止,这里没有任何可能出错的地方。这是链接回cdn的错误消息。奇怪的是,更改window.Echo主机会更改域名,但我不知道如何更改该socket.io部分。

Screenshot:

这让你想知道,它是否在Socket.io文件中的某处硬编码?这是我第一次使用Socket.io,所以我无从知晓。也许在我放入cdn后,我需要做额外的设置吗?所有Laravel文档都说要添加脚本标记,而Laravel以提供出色的文档而闻名。

任何专业知识都会受到高度赞赏,赐教我!

更新

MMMTroy建议我在vm中启动socket.io服务器而不是常规计算机。这很有道理,可能就是问题所在。但现在我有另一个问题。以前,我只是启动服务器(在我的常规计算机上),它会说:EchoServer: "Server running at http://192.168.10.10:6001"。现在,当我尝试在我的虚拟机上启动服务器时,它会返回以下错误:

/home/vagrant/Projects/Blog/node_modules/laravel-echo-server/dist/echo-server.js:159
    emitPresenceEvents(socket, channel, members, member, action = null) {
                                                                ^

SyntaxError: Unexpected token =
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/vagrant/Projects/Blog/node_modules/laravel-echo-server/dist/index.js:2:23)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)

我该怎么办这个错误?我查看了laravel-echo-server emitPresenceEvents函数,但我不知道发生了什么。

感谢。

固定!

我终于解决了它,它与节点版本有关。我将homesteads节点更新到最新版本并修复了它。

1 个答案:

答案 0 :(得分:1)

对我来说,我必须从我的虚拟机启动套接字,而不是我的本地设置。尝试通过虚拟机(宅基/流浪者)从项目的根目录启动服务器,而不是计算机的正常文件夹结构。