ThinkPHP使用Swoole需要安装 think-swoole Composer包,前提系统已经安装好了Swoole PECL 拓展* tp5的项目根目录下执行composer命令安装think-swoole: composer require topthink/think-swoole 话不多说,直接上代码: 新建WebSocket.php控制器 (监听端口要确认服务器放行,宝塔环境还需要添加安全组规则) <?php namespace app\home\controller; use t…
在之前的文章:FastAPI(六十九)实战开发<在线课程学习系统>接口开发--修改密码,这次分享留言功能开发 我们能梳理下对应的逻辑 1.校验用户是否登录 2.校验留言的用户是否存在 3.校验用户是否和留言的用户一致 4.校验留言长度是否符合要求 5.增加留言         那么看下对应的需要新增的pydantic. class MessageConent(BaseModel): id:int connect:str   对于crud,这次没有需要新增的,我们用的都是之前的代码中已经有的,所…
简介 探果网(简称tamguo)是基于java开发的在线题库系统,包括 在线访问 后台运营 会员中心 书籍中心 管理员账号:system 密码:123456 因为线上数据和测试数据没有做到隔离,作者已经把密码修改,可用.sql在本地运行看后台效果. QQ群:937899574 松耦合.高可用.可靠一直是软件工程的设计目标,探果网在这些方面还有很长的路要走,期待我们能手牵手一起走向未来. 期望 作者每天会把当天需要做的事情列出一个清单,给这周或者这个月立下一个flag.但是这中间发现了一些问题,事…
针对上一篇FastAPI(六十二)实战开发<在线课程学习系统>需求分析需求的功能,我们对需要的接口进行梳理,大概的规划出来现有的接口,作为我们第一版的接口的设计出版,然后我们根据设计的接口. 2.1用户注册接口 路径:/user/register 请求方式:POST 请求格式:json 是否依赖登陆:否 参数: 参数名称 参数含义 参数是否必须 参数类型 username 用户名 8-16位 是 str password 密码,长度8-16位,md5加密 是 str role 类型,学生或者老…
之前文章FastAPI(七十三)实战开发<在线课程学习系统>接口开发-- 回复留言,那么我们这次分享删除留言接口的开发 可以对留言进行删除,这里的删除,我们使用的是逻辑的删除,不是物理删除 我们来梳理下这里的逻辑 1.用户需要登录 2.请求携带留言的id 3.判断删除留言是否存在 4.存在则删除 那么我们看下应该如何去实现呢 @usersRouter.get(path='/deletemessage/{id}') async def deletemessage(id: int, db: Ses…
之前文章分享FastAPI(七十二)实战开发<在线课程学习系统>接口开发-- 留言列表开发,这次我们分享如何回复留言 按照惯例,我们还是去分析这里面的逻辑. 1.判断用户是否登录 2.用户登录判断回复的是否存在 3.存在回复    我们对应的pydantic对象 class RebackMessConnet(MessageConent): rebackid: int     对应的crud def db_creat_rebackmessage(db: Session, reback: Reba…
之前我们分享了FastAPI(七十一)实战开发<在线课程学习系统>接口开发-- 查看留言,这次我们分享留言列表开发. 列表获取,也需要登录,根据登录用户来获取对应的留言.逻辑梳理如下. 1.判断用户是否登录 2.根据登录用户查询留言列表 3.留言列表中要根据是留言回复,进行列表重组 我们根据逻辑去梳理下对应的crud def get_message_list(db: Session, userid: int): return db.query(Message).filter(or_(Messa…
之前FastAPI(七十)实战开发<在线课程学习系统>接口开发--留言功能开发分享了留言开发,这次我们分享查看留言 梳理这里的逻辑,这个接口要依赖登录. 1.判断用户是否登录 2.判断对应id是否存在,不存在返回对应的错误 3.判断是否是当前用户的留言,或者接受的方是自己 4.返回内容后,同时变成已读. 5.如果读了且回复了,要带回复的内容 梳理后发现,之前在接口设计的时候,有些欠缺,查看留言,是查看单个的留言,查看留言后,对应的留言变成已读状态.那么我们这个都需要传递一个参数,这个参数应该是…
之前我们分享了FastAPI(六十八)实战开发<在线课程学习系统>接口开发--用户 个人信息接口开发.这次我们去分享实战开发<在线课程学习系统>接口开发--修改密码 我们梳理一下这里的逻辑 1.需要校验登录用户,根据登录用户,我们去校验密码 2.校验成功,我们判断新密码是否符合要求 3.存储新的密码 4.删除对应的用户的token以及错误密码存储的数据 那么开始代码实现,对应的修改密码的pydantic. from pydantic import BaseModel class U…
在之前的文章:FastAPI(六十七)实战开发<在线课程学习系统>接口开发--用户登陆接口开发,今天实战:用户 个人信息接口开发. 在开发个人信息接口的时候,我们要注意了,因为我们不一样的用户个人信息不一样,而且需要依赖登录,那么我们需要根据用户是否登录来返回用户信息,根据用户的角色来返回对应的信息, def get_role_name(db:Session,id:id): return db.query(Role).filter(Role.id == id).first()  校验下登录.因…
接上一篇文章FastAPI(六十六)实战开发<在线课程学习系统>接口开发--用户注册接口开发.这次我们分享实际开发--用户登陆接口开发. 我们先来梳理下逻辑 1.查询用户是否存在2.校验密码是否正确3.密码校验失败记录失败次数4.失败次数大于10次,当天不能登陆5.密码校验通过产生对应的token返回 接着我们去设计pydantic,用于校验用户登陆 class UserLogin(UserBase): password: str 这里我们继承的是之前的UserBase. 对应操作数据库的cu…
前言 基础的分享我们已经分享了六十篇,那么我们这次分享开始将用一系列的文章分享实战课程.我们分享的系统是在线学习系统.我们会分成不同的模块进行分享.我们的目的是带着大家去用fastapi去实战一次,开发一些功能模块,锻炼大家的项目实战的能力.实战大概分为:一:需求分析,二.接口设计,三.数据库设计,四.整体框架,五.接口开发,六.接口测试,七.部署. 我们针对<在线课程学习系统>系统,进行需求分析. 针对实战,开发一个课程学习系统,主要满足用户的注册登录,查看,开课,选课,课程评论点赞,用户可…
聊天功能是很常见的一种功能,Workerman是一款开源高性能异步PHP socket即时通讯框架. 什么是Workerman? Workerman是一款 开源 高性能异步 PHP socket即时通讯框架 .支持高并发,超高稳定性,被广泛的用于手机app.移动通讯,微信小程序,手游服务端.网络游戏.PHP聊天室.硬件通讯.智能家居.车联网.物联网等领域的开发.支持TCP长连接,支持Websocket.HTTP等协议,支持自定义协议.拥有异步Mysql.异步Redis.异步Http.MQTT物联…
一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> 二.注入ServerEndpointExporter 编写一个WebSocketConfig配置类,注入对象ServerEndpointExporter, 这个bean会自…
WebSocket在线测试工具 http://ws.douqq.com/ 1.连接格式为 ws://IP/域名:端口(示例ws://119.29.3.36:5354) 2.对于内网的测试环境,只需填入服务端的内网IP和端口 3.可连接我上面提供的服务端ws地址来测试您自己的客户端 本站支持QQ机器人发消息,先加机器人QQ:625789120为好友测试 1.好友消息格式 {"type":"1","qq":"94113786",&…
一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA中间Socket/Tcp框架进行了总体的介绍,我们知道 AgileEAS.NET SOA中间件Socket/Tcp框架是一套Socket通信的消息中间件: 二.简单的服务器客户段消息应答 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架-简单例子-实现简单的服务端客户端…
这段时间在研究一些人工智能的产品,对比了国内几家做人工智能在线客服的,有些接口是要收费的,有些是免费的,但是做了很多限制,比如每天调用的接口次数限制是100次.后来就找到了百度的AI,大家也知道,目前国内做AI的,应该就算百度比较超前了. 于是就开始研究吧. 百度AI的网址http://ai.baidu.com/    然后就看百度的UNIT的文档    地址参见 https://ai.baidu.com/docs#/UNIT-v2-download/top UNIT机器人对话API文档.里面的…
在之前三篇,我们分享的就是需求的分析,基本接口的整理,数据库链接的配置.这次我们分享项目的基本框架,目录结构如下: common目录 通用的目录,一些通用的处理放在这里 models目录 数据库相关的放在这里 routers目录 所有的接口存放的地方 test 测试用例存放的地方 config.py 配置文件 Dockerfile docker打包的,后续部署看到 main.py 主运行文件 整体的架构梳理完毕后,我们就可以进行我们相关的开发了,这里我们在之前设计的数据库的相关的,可以放在对应的…
在前面我们分析了接口的设计,那么我们现在做接口的开发. 我们先去设计下pydantic用户参数的校验 from pydantic import BaseModel from typing import Optional class UserBase(BaseModel): username: str class UserCreate(UserBase): """ 请求模型验证: username: password: """ password:…
Swoole 跟 thinkphp5 结合开发 WebSocket 在线聊天通讯系统 ThinkPHP 使用 Swoole 需要安装 think-swoole Composer 包,前提系统已经安装 好了 Swoole PECL 拓展 tp5 的项目根目录下执行 composer 命令安装 think-swoole: composer require topthink/think-swoole 话不多说,直接上代码: 新建 WebSocket.php 控制器: (监听端口要确认服务器放行,宝塔环…
针对Spring Websocket的实现,我参照了其他博主的文章https://www.cnblogs.com/leechenxiang/p/5306372.html 下面直接给出实现: 一.引入相关依赖 在之前的文章中,我们说到要使用websocket,我们首先要在maven中引入相关的依赖包,具体如下: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core…
前言: 大家刚学socket编程的时候, 往往以聊天室作为学习DEMO, 实现简单且上手容易. 该Demo被不同语言实现和演绎, 网上相关资料亦不胜枚举. 以至于很多技术书籍在讲解网络相关的编程时, 不再采用聊天室做为基础案列, 而采用其他案例. 比如之前火热一时的"你猜我画", 以避免显得很大众. 但说实话, 几乎所有的网络程序追踪溯源, 都可以从聊天室中找到影子. 在线聊天室也不局限于简单的单机服务, 其分布式实现技术含量十足. 犹如达芬奇画鸡蛋, 中间虽枯燥, 但坚持不懈, 精益…
swoole中websoket创建在线聊天室(php) swoole现仅支持Linix,macos 创建websocket服务器 首先现在服务器创建一个websocket服务器 <?php //创建websocket服务器 $server = new Swoole\WebSocket\Server("0.0.0.0", 6060); // 当WebSocket客户端与服务器建立连接并完成握手后会回调此函数 $server->on('open', function (Swoo…
很早以前为了快速达到效果,使用轮询实现了在线聊天功能,后来无意接触了socket,关于socket我的理解是进程间通信,首先要有服务器跟客户端,服务的启动监听某ip端口定位该进程,客户端开启socket分配ip端口连接服务端ip端口,于是两个进程间便可以通信了.下面简单画个图理解. but,今天还是准备分享websocket的使用,先上效果,再贴代码. 第一步启动socket服务. 然后连接客户端连接服务器,加入聊天室,分别使用googel(白玉京,沈浪),火狐(楚留香),ie(李寻欢)进行测试…
所有文章搬运自我的个人主页:sheilasun.me 不得不说,上手AngularJS比我想象得难多了,把官网提供的PhoneCat例子看完,又跑到慕课网把大漠穷秋的AngularJS实战系列看了一遍,对于基本的使用依然有很多说不清道不明的疑惑,于是决定通过做一个在线聊天室帮助理解.DEMO可以戳→chat room,代码可以戳→ChatRoom-AngularJS. 清晰图可以戳 http://sheilasun.sinaapp.com/public/images/chatroom.gif 功…
一.前言 本文将基于 SpringBoot + Vue + WebSocket 实现一个简单的在线聊天功能 页面如下: 在线体验地址:http://www.zhengqingya.com:8101 二.SpringBoot + Vue + WebSocket 实现在线聊天 1.引入websocket依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo…
前言:我自已在网上找好了好多 WebSocket 制作 在线聊天室的案列,发现大佬们写得太高深了 我这种新手看不懂,所以就自已尝试写了一个在线简易聊天室 (我只用了js 可以用jq ) 话不多说,直接上案列: html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> WebSocket </title>…
我们先看一下下面这张图: 可以看到这是一个简易的聊天室,两个窗口的消息是实时发送与接收的,这个主要就是用我们今天要讲的websocket实现的. websocket是什么? websocket是一种网络通信协议,我们都知道http协议,http协议只能从客户端主动发起,不能从服务端推送数据到客户端,今天我们讲的websocket就是一种不仅能从客户端发送数据到服务端,也可以主动从服务的推送数据给客户端的一种协议. 我们先看一张图: 我们可以看到,http请求是客户端发起请求,服务端响应,然后断开…
系列文章 √第一章 元类编程,已完成 ; √第二章 网络编程,已完成 ; 本文目录 什么是socket?创建socket客户端创建socket服务端socket工作流程图解socket公共函数汇总实战:搭建在线聊天机器人 . 什么是socket? 说到网络编程,难免要提到socket? 那什么是socket呢,中文名叫"套接字",更难理解了吧. 通俗来讲,socket表示一个网络连接,通过这个连接,使得主机间或者一台计算机上的进程间可以通讯. 不管是不同主机,还是同一主机.既然是通信,…
近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有有兴趣的小伙伴一起加入开发当中来,毕竟一个人的力量是有限的 :) 有兴趣的小伙伴请加Q:279060597 系列文章将分为几个部分 零.概述(本篇) 一.需求分析及技术方案初步选型 二.技术方案选型,验证 三.底层框架设计,开发 四.服务器设计开发 五.客户端设计开发 六.Web端设计开发 在这个系…