2013-07-07 4 views
17

이것은 복잡하며 반드시 한 가지 질문 일 필요는 없습니다. 가능한 도움을 주시면 감사하겠습니다.Websocket complications

서버 액세스가없는 웹 소켓을 사용할 수는 있지만 그 방법을 보여주는 예제는 찾을 수없는 것으로 보았습니다. 심지어 일을 WebSocket을 활용하는 방법을 알아 내려고 지난 몇 시간 동안 고전을 면치 못하고 한

  1. : 나는 다음과 같은 두 가지를 기반으로 (내가이 필요 믿고) 그 결론에 도달했습니다 내 컴퓨터에 WAMP 서버가 있는데 루트 액세스 권한이 있습니다. composer를 설치했으나 composer.phar 파일을 설치하여 ratchet를 설치하는 방법을 알아낼 수 없습니다. 다른 PHP websocket 구현을 시도해 보았습니다 (PHP로 작성하는 것을 선호합니다). 그러나 여전히 작동시키지 못합니다.

  2. 현재 테스트하고있는 웹 호스트는 무료 호스트이며 SSH 액세스를 허용하지 않습니다. 따라서 루트 액세스 권한이있는 웹 소켓을 얻으려고해도 호스트에 관해서는 논점이됩니다.

나는 또한 (물론, 제한된 다) 인터넷 검색으로 무료 VPS 호스트를 찾았지만 전체 루트 액세스를 가지고,하지만 난 더 많은 대역폭을 허용 뭔가를 유지하는 것을 선호 거라고했습니다 (내 무료 호스트는 현재 무제한) . 그리고 나는 당신이 HTTP 서버와 다른 하위 도메인에서 websocket 서버를 호스팅 할 수 있고 또 다른 도메인에서 완전히 실행될 수 있다는 것을 읽었습니다.

물론 내 사이트를 호스트하는 것이 더 저렴할 수도 있습니다. 물론 그런 경우에는 실마리가 없습니다.하지만이 경우에는 컴퓨터에서 웹 소켓을 작동시키는 방법을 찾아야합니다.

누군가가 내가 무엇을 묻고 있는지 이해할 수 있다면 여기에 몇 가지 질문이 있습니다. 루트 액세스없이 웹 소켓을 사용할 수 있습니까? 그렇다면 어떻게해야합니까? 내가 제대로 composit.phar 파일을 알아낼 수 없을 때 래칫 웹 소켓을 올바르게 설치하려면 어떻게해야합니까? (라쳇 코드가있는 composer.json이 있지만 올바른 디렉토리에 있는지 확실하지 않은 경우)이 질문은 첫 번째 질문이 아닌 경우입니다. 진정으로 가능합니다. VPS에 websocket 서버를 가지고 완전히 다른 도메인에 HTTP 서버를 가지고있을 수 있습니까? 그렇다면 어디서나 문서를 볼 수 있습니까?

물론 AJAX를 사용하고 브라우저에서 JS 파일을 새로 고침하여 jQuery ajax를 사용하여 변경된 사항이 있는지 여부에 관계없이 일련의 div를 업데이트하도록 할 수는 있습니다. 그게 복잡해질 수도 있고, 가능하다면 (나는 왜 그렇게되지 않을지 모르겠다.) 그러나 나는 웹 소켓을 선호 할 것이다. 이 단락의 일종이 될 것입니다.

+1

제가 이해하는 한, websocket 그림에는 2면이 있습니다. 서버 (PHP) 및 클라이언트 (브라우저 자바 스크립트). 서버에서 PHP를 실행할 수 있다면 서버에서 [ratchet] (http://socketo.me)를 사용하고 websocket 서비스를 제공 할 수 있어야합니다. 클라이언트 측에서는 socket.io와 같은 것을 사용할 수 있습니다. – Loopo

+2

[heroku ] (http://heroku.com) for socket.io 그것은 당신이 필요로하는 거의 액세스 할 수있는 꽤 멋진 명령 줄을 가지고, 나는 내 소켓 프로젝트를 호스팅했고 그것은 매력처럼 작동합니다, heroku가 도움이되는지 알려주세요. 시도 해봐! 그것은 무료이며 CLI에 의존 할 수 있습니다. –

+0

https://pusher.com/와 같은 것이 있습니까? – jornare

답변

-1

OK ... 몇 가지 질문이 있으니 답변을 하나씩 시도해 보겠습니다. 사용하는 어떤

1

당신은 Socket.IO를 사용할 수 있습니다. JavaScript를 기반으로 실시간 웹 응용 프로그램을 개발하기위한 라이브러리입니다. 클라이언트 측 (방문자 브라우저에서 실행)과 서버 측의 두 부분으로 구성됩니다. 기본적인 사용법은 Node.js에 대한 배경 지식을 거의 필요로하지 않습니다. Here is an example 공식 Socket.IO 웹 사이트에서 간단한 채팅 응용 프로그램에 대한 자습서.

는 호스팅 제공 업체의 대부분은/설치하는 capebility와 컨트롤 패널 (의 cPanel)가 호스팅

2 등 다른 아파치 플러그인과를 활성화합니다.먼저 Node.js를 아직 사용할 수 없는지 확인해야합니다. 그렇지 않으면 지원 담당자에게 문의하여 옵션이 포함되는지 질문하십시오.

현재 호스팅 제공 업체에 행운이 없다면 많은 훌륭한 거래가 있으므로 항상 호스트를 신속하게 전환 할 수 있습니다. Google이 여기에서 확실히 도움이 될 것입니다. Here is a list에는 (아마도) 몇 가지 최상의 옵션이 포함되어 있습니다. 일부 호스팅 거래가 지불 될 수도 있지만 선택할 수있는 저렴한 비용 옵션이 많이 있음을 명심하십시오. 대역폭

당신은 아마 당신이 Amazon CloudFront에 일부 콘텐츠를 호스팅 시도 할 수있다 "자원 배고픈"코드에 대한 걱정으로

3. 널리 사용되는 콘텐츠 전송 네트워크이며 클라이언트 서버와 가장 가까운 곳에서 파일을로드 할 때 빠른 연결과 빠른 리소스로드를 보장합니다. 가장 중요한 부분은 실제로 사용하는 것에 대해서만 비용을 지불한다는 것입니다. 따라서 트래픽이 많지 않으면 실행하기에 정말 저렴하고 안정적입니다. 이 도움이

희망)

6

아파치에서 바닐라 LAMP에서 실행되는 일반 PHP 파일 (즉, 방법 mod_php)는 웹 소켓 연결을 처리 할 수 ​​없습니다. 적어도 아파치를 통해 실시간 통신을 수행하는 것은 물론, 프로토콜 업그레이드를 수행 할 수 없습니다. 이론 상으로는 WebSocket 요청을 처리하기 위해 TCP 서버를 실행하는 PHP 파일에 대해 매우 오래 실행중인 웹 요청을 할 수는 있지만 이것은 비현실적이며 공유 호스트가 실제로 PHP가 그렇게 할 수 있을지는 의문입니다.

PHP를 사용하여 WebSocket을 호스팅 할 수있는 공유 호스트가있을 수 있지만 SSH/셸 액세스 또는 웹 서버 외부에서 PHP를 실행하는 다른 방법이 없으면이를 제공 할 수 없습니다. PHP 파일을 업로드 할 디렉토리를 제공하고 Apache로 제공한다면 운이 없게됩니다.

Composer 사용상의 문제로, 어떤 종류의 쉘 액세스없이 공유 호스트에서 composer.phar을 실행할 수 있는지 여부는 잘 모르겠습니다. 일부 호스트 (예 : Heroku)는 작곡가를 특정 지원합니다.

전혀 다른 도메인에서 WebSocket 서버를 실행하는 것과 관련하여 실제로 그렇게 할 수 있습니다. JavaScript로 해당 도메인에 연결하고 WebSocket 서버가 필요한 Cross-Origin Resource Sharing 헤더를 제공하는지 확인하십시오.