【问题标题】:Mixing Laravel(PHP) with socket.io将 Laravel(PHP) 与 socket.io 混合
【发布时间】:2014-12-06 08:12:48
【问题描述】:

我们有一个 Laravel 项目,但是,应用程序的某些部分会进行大量轮询,因此我们决定将 socket.io 引入应用程序。 Laravel 依赖于监听 80 端口的 Apache(我们在前端使用 jQuery 和 Bootstrap)。我们的本地测试主机名是 test.localhost.com。节点服务器只是我们创建的一个监听 1000 端口的服务器,安装了 express 和 socket.io。

在我们的 Laravel 页面中,我们包含以下内容:<script src="//localhost:1000/socket.io/socket.io.js"></script>。作为测试,我们的前端有以下代码:

<script>
$(document).ready(function() {
    var socket = io();
    $("#msg").keyup(function(event) {
        if (event.keyCode === 13) {
            socket.emit($("#msg").val());
            $("#msg").val('');
        }
    });
});
</script>

但是,当我尝试发送消息时,节点端没有收到任何内容,但在 Chrome 控制台中,我注意到以下内容:

GET http://test.localhost.com/socket.io?EIO=3&transport=polling&t=1413006253169-84 404 (Not Found) ,socket.io.js 的第 2680 行出现错误。我打开文件并转到第 2680 行并查看 xhr.send(this.data);。这是怎么回事?我不能混合这两个代码库吗?为什么在导入时我使用 localhost:1000 (不同的主机和不同的端口)尝试在 test.localhost.com 获取?

【问题讨论】:

    标签: javascript php node.js websocket socket.io


    【解决方案1】:

    好的,我明白了。当您创建连接时,socket.io 假定您正在连接到 localhost:80。如果没有,那么您可以明确指定您的服务器主机:

    var socket = io('http://localhost:1000');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 2021-03-19
      • 2019-04-28
      • 1970-01-01
      • 2015-12-23
      • 2012-02-16
      • 1970-01-01
      相关资源
      最近更新 更多