我對這個領域的網絡套接字很陌生。我正在嘗試創建一個基於PHP的簡單實時應用程序。我發現Ratchet是PHP的最佳選擇之一,因爲它簡化了原生的PHP套接字編程。我遵循棘輪官方網站hello world中的'Hello world'教程。本教程是基本的,它只是展示瞭如何通過Web瀏覽器控制檯製作整個教程。如何在使用棘輪web插座時定義路線?
根據本教程,它提供了一個簡單的shell腳本,我們需要執行該腳本,以便Ratchet web套接字作爲服務與Apache服務器一起運行。下面是shell腳本:
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;
require dirname(__DIR__) . '/vendor/autoload.php';
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8080
);
$server->run();
在上面的代碼,它說,網絡插座是通過port 8080
訪問。我去瀏覽器和瀏覽器localhost:8080
服務器運行時沒有任何錯誤,瀏覽器中的瀏覽器localhost:8080顯示沒有任何錯誤。我猜一切都很順利。
接下來就是通過在瀏覽器控制檯中提供javascript代碼來完成客戶端的連接。 (以下是javascript代碼)
var conn = new WebSocket('ws://localhost:8080');
conn.onopen = function(e) {
console.log("Connection established!");
};
conn.onmessage = function(e) {
console.log(e.data);
};
當我運行上面的代碼時,連接建立時沒有任何錯誤。現在的問題是我不知道在哪裏放置上面的JavaScript代碼,這樣我就不必每次都在控制檯中寫入代碼。我想它應該保存在一些JavaScript文件中。以上代碼在端口localhost:8080
中運行。但是我怎樣才能明確地提到鏈接localhost:8080/chat.php
,其中chat.php將成爲瀏覽器中顯示的所需頁面,也許我可以將上面的JavaScript代碼放在同一個文件中。
我不知道如果我的問題是否有效,我只是這個領域的初學者。我還問過關於同一主題的另一個問題Binding ZMQ Socket and Ratchet,但尚未得到滿足。
一些簡單的技巧,但在如何工作的路線:IO服務器: :工廠(新的HttpServer(新的WsServer([...]))); ? –