그래서 ejabberd XMPP 서버를 설정하고 nginx를 EC2 인스턴스의 프록시로 사용합니다. Strophe.js echobot 예제는 Chrome 브라우저에서 연결할 수 있습니다. 다음은 요청 헤더입니다.Spotify App Strophe.js가 nginx/ejabberd 콤보에 연결할 수 없습니다.
Request URL:http://foo.eu-west-1.compute.amazonaws.com/http-bind
Request Method:POST
Status Code:200 OK
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:115
Content-Type:application/xml
Host:foo.compute.amazonaws.com
Origin:foo.eu-west-1.compute.amazonaws.com
Referer:foo.eu-west-1.compute.amazonaws.com/examples/echobot.html
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11
Request Payload
<body rid='2692151172' xmlns='http://jabber.org/protocol/httpbind' sid='15f6dc6cbc7a7d69b5db531c2ebf7828e094f043'/>
Response Headers
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Origin:*
Connection:keep-alive
Content-Length:286
Content-Type:text/xml; charset=utf-8
Date:Fri, 04 Jan 2013 11:14:14 GMT
Server:nginx/1.2.4
나는 애플리케이션으로 Spotify에서 작동하도록 echobot 예제를 이식했습니다. 그러나 Strophe는 연결할 수 없습니다. 다음은 웹 검사기 네트워크 로그입니다.
Request URL:http://foo.eu-west-1.compute.amazonaws.com/http-bind
Request Headers
POST http://foo.eu-west-1.compute.amazonaws.com/http-bind HTTP/1.1
Origin: sp://chatify
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.15 Safari/535.11
Content-Type: application/xml
Request Payload
<body rid='790399813' xmlns='http://jabber.org/protocol/httpbind' to='ec2-54-246-45-111.eu-west-1.compute.amazonaws.com' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>
Now. manifest.json을 모양의 RequiredPermissons 다음과 같이 : 나는이 permissons 일을 생각 있도록
"RequiredPermissons": [
"http://foo.eu-west-1.compute.amazonaws.com",
"foo.eu-west-1.compute.amazonaws.com",
"http://foo.eu-west-1.compute.amazonaws.com/http-bind",
"foo.eu-west-1.compute.amazonaws.com/http-bind"
]
나는 foo.eu-west-1.compute.amazonaws.com에서 소스를로드 할 수 있습니다. Spotify 앱은 다른 출처 인 "sp : // chatify"를 사용합니다. 나는 이것이 문제를 일으킬 수 있다는 것을 읽었다. 그리고 Access-Control-Allow-Origin:*
이 헤더에 추가되어야합니다. 나는 그것이 모두 함께 보냈다는 것을 알기 위해 nginx 설정에서 그렇게했다. 첫 번째 요청의 응답 헤더에서 확인할 수 있습니다.
error 0 happened
그래서 어떤 제안 : 켜져있는 경우
Strophe.js 자체는 예 로그에 말한다? 매니페스트가 옳은 것 같음 Access-Control-Allow-Origin; * 오른쪽처럼 보임 브라우저에서는 작동하지만 Spotify에서는 작동하지 않습니다.
도움을 받으려면 Thx!
업데이트 : 로컬로 echobot.html을 열면 여전히 작동합니다. 원점은 null
입니다.