2017-12-04 1 views
0

모든 서버 요청에 대해 websocket을 통해 실행되는 단일 페이지 웹 응용 프로그램을 만들려고합니다. 사용자가 로그인 한 후 페이지에서 대시 보드 (첫 페이지)를 표시하도록 html을 변경해야합니다.PHP를 사용하여 WebSocket을 통해 단일 페이지 웹 응용 프로그램에서 "페이지 변경"만들기

대시 보드 템플릿이 이미 이전 버전에서 제작되었습니다. 데이터베이스 정보를 템플릿에 입력하고 websocket을 통해 JavaScript를 표시 할 문자열로 페이지를 보내는 방법을 찾아야합니다.

PHP 클래스를 클래스에 하드 코딩하지 않고 템플릿을 채우는 방법을 모르겠다. 그래서 그것을 보낼 수 있도록 문자열로 바꾼다. 대시 보드는 매우 복잡하며 각 사용자의 설정 및 권한에 따라 동적으로 메뉴를 구성합니다.

이 전체적인 문제를 잘못보고 있습니까? 레일즈/node.js에서 Ruby의 MVC에 대한 경험이 있지만 불행히도이 응용 프로그램은 PHP를 사용하여 붙어 있습니다. 소켓과 함께 프레임 워크를 사용할 수 있습니까? JS가 https를 통해 템플릿을로드하고 소켓을 통해 데이터를 보내야합니까? (JS 녀석은 그것을 좋아하지 않을 것이다).

AWS에서 우분투, apache2, php7, 래칫 웹 소켓 (wss), 작곡가 및 MySQL을 모두 실행하고 있습니다.

답변

1

필자는 프론트 엔드가 필요한 데이터를 얻도록 할 것입니다. PHP를 백엔드로 사용하여 인증을 테스트하고, 요청을 구문 분석하고, 데이터베이스에서 데이터를 가져 와서 프론트 엔드로 보낼 수 있습니다. 그런 다음 프론트 엔드는 dom 조작 (jQuery 사용)을 사용하여 응용 프로그램을 업데이트해야합니다.
또는 php는 프론트 엔드의 div에 표시 될 생성 된보기를 보낼 수 있습니다.

이 설정에서는 websockets을 사용하지 않는 것이 좋지만 AJAX를 사용하는 것이 좋습니다.

귀하의 질문에서 수집 한 것으로부터 AngularJS와 같은 실제 SPA 프레임 워크를 사용하는 것이 좋습니다. 백엔드에서 얻을 데이터를 사용하는 것이 더 좋습니다. 그런 다음 AJAX 나 nodejs와 같은 Websocket 백엔드를 사용하여 PHP 백엔드를 사용할 수 있습니다.

+1

감사합니다. 나는 PHP를 좋아하지 않지만 내 손은 묶여있다. 나는 js Ajax 템플릿을 가지고 소켓에서 PHP로 채울 것이라고 생각한다. 여기에 누군가 실제로 답을 제공 할 수 있고, 단지 downvote가 아닌 것을 찾는 것이 좋습니다 :) – SilverSlug

+0

jQuery로드를 살펴보십시오. '$ ('#mydiv') .load ('https://url.to/phpgenerator 페이지의 일부분을로드하는 것 : '$ ('#mydiv') .load ('https://url.to/apage.php # .php', {데이터 : 데이터}); andapartofit '); –

관련 문제