Php 是否可以在Laravel中集成socket.io客户端?

Php 是否可以在Laravel中集成socket.io客户端?,php,node.js,laravel,express,socket.io,Php,Node.js,Laravel,Express,Socket.io,我有一个外部应用程序将连接到我的网站使用套接字(使用) 这些套接字将被接收(express.js)并通过发送到客户端 使用socket.io的目的只是实时更新每个客户端浏览器上的一些信息。就像简单的通知一样。 不会将WebSocket从浏览器传输到服务器。浏览器将仅使用WebSocket从服务器接收信息 我想知道是否有可能将其与Laravel集成,以便我仍然可以使用我的Laravel登录、会话、URL路由等。您可以使用下一个解决方案。我在PHP+socket.io连接中使用它。 这不是完全集成,

我有一个外部应用程序将连接到我的网站使用套接字(使用)

这些套接字将被接收(express.js)并通过发送到客户端

使用socket.io的目的只是实时更新每个客户端浏览器上的一些信息。就像简单的通知一样。 不会将WebSocket从浏览器传输到服务器。浏览器将仅使用WebSocket从服务器接收信息


我想知道是否有可能将其与Laravel集成,以便我仍然可以使用我的Laravel登录、会话、URL路由等。

您可以使用下一个解决方案。我在PHP+socket.io连接中使用它。 这不是完全集成,但您可以从PHP代码向连接的客户端发送事件

1.连接到客户端中的socket.io。 2.在PHP中创建用户id(我使用md5(session_id())。将此id保存在您想要的位置,例如,在用户帐户表中。 3.在客户端运行下一个代码:

var socket=io(“.$your\u socket\u io\u server.”);
emit(“register”{userid:“.$userid.”“});
4.侦听客户端上的事件

//附加房间,不包括用户id。
emit(“register”{userid:“room_26322bab71bc91b19204acfeee6192”})
socket.on('server_event',函数(数据){
log('server event');
控制台日志(数据);
})
socket.on('alert',函数(数据){
警报(数据);
})
5.编写一些node.js代码,在正确的userid客户端中侦听GET和POST查询并发出事件。您可以为此创建名为$userid的文件室。 6.通过文件\u get\u contents或curl将命令从PHP发送到node.js服务器。 例如,我的代码:

一个房间,一个客户。断开连接后,文件室被删除,但现在socket.io中有一个bug,文件室不删除,所以我在代码中手动删除

7.因此,地址可能是下一个:您的nodejs服务器/emit?id=a98166839163afd20a4be56fa3e60d13&message=server_事件¶m=12 另外,最好将curl与PHP数据一起使用。所以,PHP中的所有业务逻辑,您不需要在node.js部分使用数据存储或计算,也可以在多个项目中使用一个node.js服务器。你可以使用你的Laravel登录,会话,任何你想要的。此外,您可以在PHP部件中使用userid_to_user many to many存储来服务多个客户机,并以帐户登录

您可以使用address cloud.doit-cms.ru进行测试,这是Azure node.js应用程序,连接到github代码

我的emiting PHP代码(非常简单):。当然,外部应用程序(如果不是PHP)必须使用这个简单的API

此外,您可以使用第三方解决方案,如下所示:


您可以使用下一种解决方案。我在PHP+socket.io连接中使用它。 这不是完全集成,但您可以从PHP代码向连接的客户端发送事件

1.连接到客户端中的socket.io。 2.在PHP中创建用户id(我使用md5(session_id())。将此id保存在您想要的位置,例如,在用户帐户表中。 3.在客户端运行下一个代码:

var socket=io(“.$your\u socket\u io\u server.”);
emit(“register”{userid:“.$userid.”“});
4.侦听客户端上的事件

//附加房间,不包括用户id。
emit(“register”{userid:“room_26322bab71bc91b19204acfeee6192”})
socket.on('server_event',函数(数据){
log('server event');
控制台日志(数据);
})
socket.on('alert',函数(数据){
警报(数据);
})
5.编写一些node.js代码,在正确的userid客户端中侦听GET和POST查询并发出事件。您可以为此创建名为$userid的文件室。 6.通过文件\u get\u contents或curl将命令从PHP发送到node.js服务器。 例如,我的代码:

一个房间,一个客户。断开连接后,文件室被删除,但现在socket.io中有一个bug,文件室不删除,所以我在代码中手动删除

7.因此,地址可能是下一个:您的nodejs服务器/emit?id=a98166839163afd20a4be56fa3e60d13&message=server_事件¶m=12 另外,最好将curl与PHP数据一起使用。所以,PHP中的所有业务逻辑,您不需要在node.js部分使用数据存储或计算,也可以在多个项目中使用一个node.js服务器。你可以使用你的Laravel登录,会话,任何你想要的。此外,您可以在PHP部件中使用userid_to_user many to many存储来服务多个客户机,并以帐户登录

您可以使用address cloud.doit-cms.ru进行测试,这是Azure node.js应用程序,连接到github代码

我的emiting PHP代码(非常简单):。当然,外部应用程序(如果不是PHP)必须使用这个简单的API

此外,您可以使用第三方解决方案,如下所示:


您可以使用下一种解决方案。我在PHP+socket.io连接中使用它。 这不是完全集成,但您可以从PHP代码向连接的客户端发送事件

1.连接到客户端中的socket.io。 2.在PHP中创建用户id(我使用md5(session_id())。将此id保存在您想要的位置,例如,在用户帐户表中。 3.在客户端运行下一个代码:

var socket=io(“.$your\u socket\u io\u server.”);
emit(“register”{userid:“.$userid.”“});
4.侦听客户端上的事件

//附加房间,不包括用户id。
emit(“register”{userid:“room_26322bab71bc91b19204acfeee6192”})
socket.on('server_event',函数(数据){
log('server event');
控制台日志(数据);
})
socket.on('alert',函数(数据){
警报(数据);
})
5.编写一些node.js代码,在正确的userid客户端中侦听GET和POST查询并发出事件。您可以为此创建名为$userid的文件室。 6.通过file_get_contents或curl从PHP向node.js服务器发送命令。 例如,我的代码:

一个房间,一个客户。断开连接后,删除文件室,但现在so中有一个错误
<script>
var socket = io("' . $your_socket_io_server . '");
socket.emit("register", { userid: "' .  $userid  . '" });
</script>
<script>
    //Additional room, not inly user id.  
    socket.emit("register", { userid: "room_26322bab71bc91b19204acfeee6192" })
    socket.on('server_event', function (data) {
        console.log('server event');
        console.log(data);
    })

    socket.on('alert', function (data) {
        alert(data);
    })
</script>