# 安裝
### Composer安裝
支持使用`Composer`安裝
> 如果還沒有安裝`Composer`,在`Linux`和`Mac OS X`中可以運行如下命令:
>
> ~~~
> curl -sS https://getcomposer.org/installer | php
> mv composer.phar /usr/local/bin/composer
>
> ~~~
>
> 在 Windows 中,你需要下載并運行?[Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe)。
> 如果遇到任何問題或者想更深入地學習 Composer,請參考?[Composer 文檔(英文)](https://getcomposer.org/doc/),[Composer 中文](http://www.hmoore.net/thinkphp/composer)。
由于眾所周知的原因,國外的網站連接速度很慢。因此安裝的時間可能會比較長,我們建議通過下面的方式使用國內鏡像。
> 打開命令行窗口(windows用戶)或控制臺(Linux、Mac 用戶)并執行如下命令:
>
> ~~~
> composer config -g repo.packagist composer https://packagist.phpcomposer.com
>
> ~~~
> 注意:最近`phpcomposer`鏡像存在問題,可以改成
>
> ~~~
> composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
>
> ~~~
如果你是第一次安裝的話,在命令行下面,切換到你的WEB根目錄下面并執行下面的命令:
### Composer安裝flysocket
~~~
composer create-project flysnow/flysocket
~~~
這里的`wm`目錄名你可以任意更改,執行完畢后,會在當前目錄下的`wm`子目錄安裝最新版本的workerman-api,這個目錄就是我們后面會經常提到的應用根目錄。
如果出現錯誤提示,請根據提示操作或者參考[Composer中文文檔](http://www.hmoore.net/thinkphp/composer)。
## Git安裝
也可以使用`git`版本庫安裝和更新,
* 應用項目:`https://github.com/feixuekeji/flysocket`
首先克隆下載應用項目倉庫
~~~
git clone https://github.com/feixuekeji/flysocket fly
~~~
現在只需要做最后一步來驗證是否正常運行。
在終端中輸入
~~~
php start.php start
~~~
如果沒有報錯則成功
```
Workerman[start.php] start in DEBUG mode
------------------------------------------------ WORKERMAN ------------------------------------------------
Workerman version:4.0.6 PHP version:7.3.19-1+eagle
------------------------------------------------- WORKERS -------------------------------------------------
proto user worker listen processes status
tcp feifei YourAppBusinessWorker none 4 [OK]
tcp feifei YourAppGateway websocket://0.0.0.0:8282 4 [OK]
tcp feifei none http://0.0.0.0:8088 1 [OK]
tcp feifei Register text://0.0.0.0:1238 1 [OK]
tcp feifei internalGateway text://127.0.0.1:7273 1 [OK]
-----------------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
```
測試能否連通
新建以下HTML文件,瀏覽器中打開,打開控制臺日志
ws.html
```
~~~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var ws = new WebSocket("ws://127.0.0.1:8282");
ws.onopen = function()
{
var data = {
"api": "index/Index/index",
"app": "iphone",
"ver": 88,
"data": {
"id": 1,
}
}
// Web Socket 已連接上,使用 send() 方法發送數據
ws.send(JSON.stringify(data));
};
ws.onmessage = function (evt)
{
console.log(evt.data)
};
// sendSock('aaa',function (data) {
// console.log(data)
//
// })
</script>
</body>
</html>
~~~
```
控制臺輸出如下

