日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

Swoole學習筆記七:搭建WebSocket長連接 之 使用 USER_ID 作為身份憑證

2年前

閱讀 3678

評論 0

喜歡 0

### 0、前言

前面基本的WebSocket操作,我們基本都已經掌握了,接下來我們要學習的是怎么用`user_id`去關聯(lián)一個fd憑證呢?

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

這樣費時的操作,肯定不是我們想要的。

實際上,我們只需要新增一個`open`連接存儲器記錄`fd`即可,然后在`code=1`的時候用`user_id`更新到原來的`data`存儲器中即可。

### 1、注意事項

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

② 服務端新建一個open存儲器

③ 服務端在`code=1`時,在從open存儲器中讀取`fd`憑證寫入data存儲器中。

④ 服務端在`close`事件中記得清除已經關閉的open存儲器憑證,防止存儲器無限增大。

### 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;}

  • 登錄
  • 退出

模擬會員登錄

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。