日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...

發(fā)布時(shí)間:2024/9/27 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Swoole學(xué)習(xí)筆記七:搭建WebSocket長(zhǎng)連接 之 使用 USER_ID 作為身份憑證

2年前

閱讀 3678

評(píng)論 0

喜歡 0

### 0、前言

前面基本的WebSocket操作,我們基本都已經(jīng)掌握了,接下來(lái)我們要學(xué)習(xí)的是怎么用`user_id`去關(guān)聯(lián)一個(gè)fd憑證呢?

按我們的思路應(yīng)該是在`data`存儲(chǔ)器中,將`fd`替換成`user_id`,但這樣在server的`close`事件中,就需要用遍歷的方式去讀取關(guān)閉的對(duì)應(yīng)連接了。

這樣費(fèi)時(shí)的操作,肯定不是我們想要的。

實(shí)際上,我們只需要新增一個(gè)`open`連接存儲(chǔ)器記錄`fd`即可,然后在`code=1`的時(shí)候用`user_id`更新到原來(lái)的`data`存儲(chǔ)器中即可。

### 1、注意事項(xiàng)

① 客戶端全部使用`user_id`作為身份憑證

② 服務(wù)端新建一個(gè)open存儲(chǔ)器

③ 服務(wù)端在`code=1`時(shí),在從open存儲(chǔ)器中讀取`fd`憑證寫(xiě)入data存儲(chǔ)器中。

④ 服務(wù)端在`close`事件中記得清除已經(jīng)關(guān)閉的open存儲(chǔ)器憑證,防止存儲(chǔ)器無(wú)限增大。

### 2、客戶端代碼修改:

```

// +----------------------------------------------------------------------

// 小黃牛blog - websocket

// +----------------------------------------------------------------------

// Copyright (c) 2018 https://xiuxian.junphp.com All rights reserved.

// +----------------------------------------------------------------------

// Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )

// +----------------------------------------------------------------------

// Author: 小黃牛 <1731223728@qq.com>

// +----------------------------------------------------------------------

session_start();

# 模擬用戶登錄

if (!empty($_POST['nice'])) {

$data = [

'nice' => $_POST['nice'],

'id' => uniqid(),

];

$_SESSION['user'] = $data;

echo json_encode($data, JSON_UNESCAPED_UNICODE);

exit;

# 模擬用于退出登錄

} else if (!empty($_POST['out'])) {

$_SESSION['user'] = '';

}

?>

Swoole+Websocket案例 - 小黃牛

html,body{margin:0;padding:0;font-size:13px}

.left{width: 20%;height: 600px;border: 1px solid #ddd;float: left;}

.right{width: 59.7%;height: 400px;border: 1px solid #ddd;border-left: 0px;float: left;overflow: auto;}

.bottom{width: 79.7%;height: 199px;border: 1px solid #ddd;border-left: 0px;border-top: 0px;float: left;}

#content{width: 99.5%;height: 165px;}

.blue{color:blue}

.red{color:red}

.div_left{width:100%;float:left}

.div_right{width:100%;float:left;text-align: right;}

.div_centent{width:100%;float:left;text-align: center;}

#USER{width:100%;height: 40px;line-height: 40px;border-bottom: 1px solid #ddd;float:left}

#error{width:20%;height:400px;float: left;overflow: auto;}

  • 登錄
  • 退出

模擬會(huì)員登錄

總結(jié)

以上是生活随笔為你收集整理的websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。