pp 가 App 에서 자주 사용 하 는 초 발 기능 을 어떻게 실현 하 는 지 분석 합 니 다.

4705 단어 php초 발
머리말
상상 해 보 세 요.우리 가 평소에 친구 들 에 게 보 낼 때 N 장의 사진 에 글 을 붙 이 고 씽씽 보 냈 습 니 다.아무런 흙탕물 도 없 는 그런 체험 을 하 니 기분 이 좋 습 니 다.
그러나 우 리 는 멈 춰 서서 기술적 인 수단 으로 생각 하 는 것 이 가능 합 니까?어떤 2G 네트워크 는 많 으 면 몇 십 K 네트워크 속도 이다.우리 의 사진 은 한 장 에 몇 M 이 고 압축 되 더 라 도 몇 백 K 가 있 는데 어떻게 순간 에 메 시 지 를 보 낼 수 있 겠 는가?
지금 생각해 보 니 좀 이상 하지 않 나 요~
사실은 많은 소 셜 네트워크 서비스(웨 이 보,위 챗)는 모두 초 발 메커니즘 을 사용 했다.그 는 정말로 먼저 발송 한 후에 발송 이 끝 난 후에 발송 성공 을 알려 주 는 것 이 아니 라 발송 성공 을 직접 알려 주 는 것 입 니 다.그리고 백 스테이지 에서 몰래 당신 이 보 낸 물건 을 올 립 니 다.그래서 인터넷 속도 가 좋 지 않 을 때 우 리 는 자주 발견 하 는 현상 을 발견 합 니 다.처음에 보 낸 친구 권 은 처음에는 정상 적 이 었 지만 몇 분 후에 우리 에 게 발송 에 실 패 했 음 을 알려 줍 니 다!어색 하 잖 아.처음 엔 아무 말 도 안 했 는데..................................................................
높 은 기술 에 놀 라 지 마 세 요.작은 기 교 를 했 을 뿐 입 니 다.정말 기본 적 이지 만 정말 실 용적 입 니 다.
기술 을 토론 하기 전에 먼저 초기 조건 을 성명 하 다.
    1.데이터베이스 시트 구 조 를 특수 하 게 개조 했다.친구 권 내용 표 에는 특수 한 필드 status 가 있 고 status 값 은 두 가지 상황 이 있 으 며 값 은 1 또는 2 일 수 있다.
값 이 1 이면 친구 권 에서 발표 되 지 않 았 습 니 다.값 이 2 는 친구 권 에서 발표 되 었 습 니 다.(왜 그 랬 는 지 잠시 알 수 없 는 학생 은 먼저 계속 읽 고 나중에 설명 할 수 있 습 니 다)
    2.이 글 의 초 발 기능 은 그림 이 있 는 상황 에서 사용 하 는 것 을 말 합 니 다.그림 이 있 으 면 사진 업로드 가 너무 느 리 기 때문에 초 발 체 제 를 사용 해 야 합 니 다.그러나 그림 의 순수한 문자 가 없 으 면 큰 필요 가 없습니다.텍스트 전 송 량 이 낮 기 때문에 정상 적 인 절차 에 따라 보 내 면 됩 니 다.
    3.이 글 의 코드 는 Phalapi 프레임 워 크 를 바탕 으로 문법 이 모두 간단 하고 ORM 조작 경험 이 있 는 학생 들 은 모두 알 아 볼 수 있 을 것 입 니 다.
    4.이 글 은 주로 앱 의 초 발 기능 을 설명 합 니 다.WEB 엔 드 는 이 기능 을 특별히 필요 로 하지 않 습 니 다.왜냐하면 현대 인터넷 은 우리 의 PC 가 한꺼번에 많은 사진(10M/s,20M/s)을 보 낼 수 있 기 때 문 입 니 다.
전체 실행 절 차 를 큰 방향 으로 토론 합 니 다.
클 라 이언 트 가 발표 API 를 호출 하고 서버 에서 발표 내용(publish.php)을 수행 합 니 다.그림 이 있 으 면 클 라 이언 트 는 업로드 API(upload.php)를 추가 로 호출 해 야 합 니 다.이 업로드 API(upload.php)가 아직 작업 이 완료 되 지 않 았 을 때 클 라 이언 트 는 발표 성공 을 직접 알려 줍 니 다.(사실은 현재 업로드 가 완료 되 지 않 았 습 니 다.뒤에 프로 세 스 가 필사적으로 올 려 주 고 있 습 니 다.그리고 클 라 이언 트 는 당신 이 보 낸 문자 와 그림 을 잠시 연결 해서 보 여 줍 니 다.성공 하면 순조롭게 올 리 고 실패 하면 보 내 는 데 실 패 했 지만 결 과 를 기다 리 는 1 분 안에 보 냈 다 고 생각 하 게 해 줄 것 이다.업로드 에 실패 하지 않 으 면 나중에 알려 줄 것 이다.
그러면 우리 기술 차원 에서 이 메커니즘 을 분석 해 봅 시다.

오른쪽 상단 에 있 는 보 내기 키 를 누 르 면 두 프로 세 스 가 동시에 시 작 됩 니 다.그 중 하 나 는 텍스트 를 올 려 주 고 보 낸 것 이 성공 적 이 라 고 알려 주 는 프로 세 스 입 니 다(Publish.phop).다른 프로 세 스 는 보 낸 그림(upload.phop)을 몰래 올 리 는 것 입 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.
Publish.php

<?php
 
//      (  ,  ,     )
 
…
 
Code …
 
Code …
 
//    ,          (status 1),         (status 2)
 
//                  ,              upload.php,              ,      status  ~
 
$status = ($pic_num > 0) ? 1 : 2;
 
//      
 
$where_data = array( "status"=> $status)
 
//    
 
DI()->notorm-> friends ->insert($where_data);
 
?>
현묘 함 을 알 아 보 셨 나 요?저 희 는 입 고 된 status 필드 에 대해 한 번 판단 을 했 습 니 다.각각 1(발표 되 지 않 음)과 2(발표 되 지 않 음)두 가지 상황 이 있 을 것 입 니 다.그러면 데 이 터 를 읽 을 때 어떻게 해 야 합 니까(list.php)?
그럼 페이지 를 보 여 주 는 것 은 다음 과 같 습 니 다.
Lists.php

<?php
 
//code ..
 
//      
 
Code..
 
//      
//(        pic   f_id(        ),       where  
$data= DI()->notorm->pic->select('f_id')->where("status > 1 OR (status = 1 && u_id = {$u_id})")->->fetchAll();
 
 
//code ..
 
?>
이곳 의 where 조건 은 초 발 메커니즘 의 가장 관건 적 인 부분 입 니 다.
status 는 1(발표 되 었 음)이상 이거 나 1(발표 되 지 않 음)과 같 습 니 다.(tips:status 는 그림 이 있 는 상황 에서 기본 값 은 1)하지만 현재 사용자 가 발표 한 내용 에 속 하기 때문에 모두 읽 을 수 있 습 니 다.이것 은 기묘 한 현상 이 있 습 니 다.어쨌든 우리 가 보 낸 친구 권 은 자신 이 영원히 읽 을 수 있 습 니 다.하지만 다른 사람 은 꼭 그렇지 는 않 습 니 다.
그러면 마지막 관건 은 바로 사진 을 업로드 하 는 프로 세 스(upload.php)입 니 다.이것 은 실제 사진 을 업로드 하 는 논리 입 니 다.
몇 장의 사진 이 있 습 니 다.이렇게 upload.php 는 몇 번 호출 됩 니 다.
업로드 에 성공 할 때마다 그림 줄 의 필드 status 를 2 로 변경 합 니 다.
upload.php

<?php
 
//Code..
 
//           
 
//        ,    
 
If(    ){
 
// status  2
 
$status_data = array("status" => 2);
 
DI()->notorm->pic->select('u_id')->where('u_id, $u_id)-->update($status_data);
 
}else{
 
Code…
 
}
위 와 같은 몇 가지 작업 을 거 쳤 습 니 다.
여러분 이 눈치 채 셨 는 지 모 르 겠 습 니 다.저희 가 평소에 쓴 발표 기능 과 달리 업로드.php 기능 이 독립 되 었 습 니 다.변 경 된 게시 publish.php 는 가장 빠 른 속도 로 텍스트 내용 을 데이터베이스 에 저장 하고 그림 내용 이 있 으 면 업로드 API upload.php 를 단독으로 호출 합 니 다.
가장 중요 한 것 은 디 스 플레이 를 할 때 자신 이 보 낸 것 을 볼 수 있 도록 작은 기 교 를 하 는 것 이다.
자,이상 이 본문의 모든 내용 입 니 다.여러분 들 이 PHP 를 배 우 는 데 도움 이 되 기 를 바 랍 니 다.여러분 들 도 계속 저 희 를 주목 해 주 십시오.

좋은 웹페이지 즐겨찾기