Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用socket.io创建PHP,还是在node.js和socket.io中重新创建所有内容?_Php_Node.js_Socket.io - Fatal编程技术网

使用socket.io创建PHP,还是在node.js和socket.io中重新创建所有内容?

使用socket.io创建PHP,还是在node.js和socket.io中重新创建所有内容?,php,node.js,socket.io,Php,Node.js,Socket.io,我目前正计划编写一个私人项目,更具体地说,是一个虚拟聊天室,在那里,化身可以四处闲聊 现在我真的有点困惑了,应该用哪种语言来编码呢。现在,我已经将PHP用于后端,例如用于前端的身份验证和HTML 但我知道我需要使用Javascript,将聊天室资产绘制到画布元素。我需要使用socket.io(node.js)进行聊天和数据包 现在我的问题是,我甚至可以在后端使用PHP,并使用socket.io在服务器和客户端以及聊天本身之间进行通信吗 目前,流程如下: 用户登录到一个帐户,后台检查在php中完成

我目前正计划编写一个私人项目,更具体地说,是一个虚拟聊天室,在那里,化身可以四处闲聊

现在我真的有点困惑了,应该用哪种语言来编码呢。现在,我已经将PHP用于后端,例如用于前端的身份验证和HTML

但我知道我需要使用Javascript,将聊天室资产绘制到画布元素。我需要使用socket.io(node.js)进行聊天和数据包

现在我的问题是,我甚至可以在后端使用PHP,并使用socket.io在服务器和客户端以及聊天本身之间进行通信吗

目前,流程如下:

  • 用户登录到一个帐户,后台检查在php中完成
  • 用户被重定向到仪表板
  • 用户选择菜单点世界
  • 用户选择一个聊天世界并被重定向到另一个包含画布和聊天盒的站点
  • 步骤3的屏幕截图:

    步骤4的屏幕截图:

    在构建画布之后,如何创建套接字以使用套接字io与服务器通信并创建聊天应用程序

    如果不使用PHP,只使用node.js和socket.io(也适用于用户身份验证等),编写整个站点的代码会更容易吗


    我非常感谢您提供的任何建议和帮助

    嗯,我想您应该有很好的PHP技能,但对nodejs/socketio还是比较陌生的

    是的,nodejs可以在实时性方面做得更好,但它更适合于实现可伸缩性,并且它有自己的生态系统,如果你不需要它们,你也可以用PHP来实现。然而,你可以同时拥有PHP和nodejs,这是性能正常的

    它可能是这样的:php用于http请求,nodejs/socket.io用于websockets连接,如果您不需要从nodejs调用php,也不需要从nodejs调用php(但两者仍然可以访问相同的数据库),则此设置将起作用

    现在,如果您需要从其中一个调用,则可以使用包括消息队列(如RabbitMQ)或从其中一个公开HTTP API的方法

    至于在nodejs中编写整个代码,我不会这么做,php在您提到的任务中非常出色,我仍然认为使用nodejs进行聊天会更好

    现在你提到这是私人的,将来团队成员很重要


    如果这个项目是为了学习,我认为无论你是否需要它的可扩展性和/或生态系统,nodejs技能都是很好的选择。

    嘿,谢谢你的回复!正如你已经说过的,我对nodejs/socketio还比较陌生。并在多个使用php和c的项目中工作。因此,是的,我可能会使用您提到的方法,对http请求使用PHP,对WebSocket连接使用nodejs/socket.io。因此,我可以像以前一样使用PHP进行身份验证,并在身份验证之后使用user对象创建套接字身份验证:)