ngx_mruby에서 iOS에 Push 알림을 보았습니다. (Parse.com을 통해)
iOS 푸시 포함
Push를 받는 쪽에 대해서는 문서를 쫓아 갔을 뿐이므로 글머리 기호.
Nginx
Subscribe (필기) ngx_mruby에서 외부 HTTPS 요청에 대한 mgem 추가
ngx_mruby에 처음부터 준비되어 있는 샘플의
build_config.rb
에 대해서, 추가한 것은 이들.※ 이번은 약간의 사정(우연히?)로
s/mruby-onig-regexp/mruby-pcre-regexp/
라고 하는 변경도 했다.그럼 샘플 코드
사용 장소로서는, 뭔가 불편함이나 공격이 있던 타이밍에 사용할 수 있을까라고 생각하고 있었습니다.
그러나, 우선은 간단하게 이 방침.
해보자.
location / {
mruby_content_handler_code '
Server = Nginx
c = Server::Connection.new
http = HttpRequest.new()
res = http.post(
"https://api.parse.com/1/push",
JSON.generate({
"channels" => ["Nginx"],
"data" => {"alert" => "Your site was visited from #{c.remote_ip} ."}
}),{
"Content-Type" => "application/json",
"X-Parse-Application-Id" => "Parseのアプリケーションキー",
"X-Parse-REST-API-Key" => "ParseのREST APIキー"
})
Nginx.errlogger Nginx::LOG_WARN, res["status"]
Server.echo "reported your access."
';
}
브라우저에서 요청함
조금 Docker로 시작한 서버에 브라우저로 리퀘스트. 신고되었다.
리퀘스트 처리중에 동기 처리로 Parse를 두드리고 있으므로, 나름대로 기다리는 것은 (이번은) 어쩔 수 없다고. . .
Nginx 측의 로그는 Parse의 반환이
200 OK
임을 기록했습니다.2015/09/02 xx:xx:xx [warn] 1#0: *1 200 OK, client: 192.168.99.1, server: _, request: "GET / HTTP/1.1", host: "192.168.99.100:8080"
푸시 알림 확인
그리고 Push는 왔다.
무언가에 외부에의 요구를 사용한다면, 괜찮은 일 워커 프로세스가 통째로 기다리지 않게 쓰고 싶네요.
추가:
메모리가 무진장하고 외부 API의 응답이 클라이언트에 대해 불필요하다면 더블 포크로 둘러싸자는 손이 있다.
Reference
이 문제에 관하여(ngx_mruby에서 iOS에 Push 알림을 보았습니다. (Parse.com을 통해)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sawanoboly/items/881d1033935c09c0d142텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)