質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

623閲覧

websocketのサーバー構築時にエラーが出る

msssss

総合スコア64

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/05/07 11:13

json

1コード 2{ 3 "autoload": { 4 "psr-4": { 5 "MyApp\": "src" 6 } 7 }, 8 "require": { 9 "cboden/ratchet": "^0.4" 10 } 11}

php

1コード 2<?php 3namespace MyApp; 4use Ratchet\MessageComponentInterface; 5use Ratchet\ConnectionInterface; 6 7class Chat implements MessageComponentInterface { 8 protected $clients; 9 10 public function __construct() { 11 $this->clients = new \SplObjectStorage; 12 } 13 14 public function onOpen(ConnectionInterface $conn) { 15 // Store the new connection to send messages to later 16 $this->clients->attach($conn); 17 18 echo "New connection! ({$conn->resourceId})\n"; 19 } 20 21 public function onMessage(ConnectionInterface $from, $msg) { 22 $numRecv = count($this->clients) - 1; 23 echo sprintf('Connection %d sending message "%s" to %d other connection%s' . "\n" 24 , $from->resourceId, $msg, $numRecv, $numRecv == 1 ? '' : 's'); 25 26 foreach ($this->clients as $client) { 27 if ($from !== $client) { 28 // The sender is not the receiver, send to each client connected 29 $client->send($msg); 30 } 31 } 32 } 33 34 public function onClose(ConnectionInterface $conn) { 35 // The connection is closed, remove it, as we can no longer send it messages 36 $this->clients->detach($conn); 37 38 echo "Connection {$conn->resourceId} has disconnected\n"; 39 } 40 41 public function onError(ConnectionInterface $conn, \Exception $e) { 42 echo "An error has occurred: {$e->getMessage()}\n"; 43 44 $conn->close(); 45 } 46} 47

php

1コード 2<?php 3use Ratchet\Server\IoServer; 4use MyApp\Chat; 5use Ratchet\Http\HttpServer; 6use Ratchet\WebSocket\WsServer; 7 8require dirname ( __DIR__ ) . '/vendor/autoload.php'; 9 10$server = IoServer::factory ( new HttpServer( new WsServer( new Chat () ) ), 8080 ); 11$server->run ();

サーバーを立ち上げようとして、cmdで

php chat-server.phpを入力すると

Fatal error: Uncaught Error: Class 'Ratchet\Server\IoServer' not found in C:\tutorial\websocket\bin\chat-server.php:9
Stack trace:
#0 {main}
thrown in C:\tutorial\websocket\bin\chat-server.php on line 9

とエラーが出ます

ディレクトリの階層は
├── bin
│ └── chat-server.php
├── src
│ └── MyApp
│ └── Chat.php
└── vendor
├── autoload.php
├── composer
│ ├── autoload_classmap.php
│ ├── autoload_namespaces.php
│ ├── autoload_psr4.php
│ ├── autoload_real.php
│ ├── ClassLoader.php
│ └── installed.json

です。
改善点を教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1. Ratchetインストール出来ているかvendorの中を見て確認
2.1 composer使っているなら、composer dump-autoloadをし直してみる
2.2 php ~/composer.phar require cboden/ratchetで入れたならautoloadのファイルを確認する
3. Ratchetに書かれているnamespaceが違う可能性とか、Ratchet自体を疑ってみる
Ratchet使った事ないので的外れかもしれないが

投稿2019/05/07 15:22

bcaa

総合スコア170

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msssss

2019/05/08 14:00

ratchetがインストールできてなかったみたいです。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問