- 博客(16)
- 收藏
- 关注
原创 swoole的进程管理(Process)
进程,线程,协程 首先得说一下基础,就是进程,线程与协程,大小的关系是进程>线程>协程,而我们所说的swoole让php实现了多线程,其实在这里来说,就是好比让php创建了多个进程,每个进程执行一条线程,从而实现了php"多线程"(java是在一个进程内创建多个线程). 子进程的创建<?php //创建一个进程$process = new s...
2018-06-29 15:32:44 1136
原创 Go的学习旅程9:Http,Web,websocket的简单实现
golang的web运行效率还是和nginx相同,而且实现起来还是很简单的; 简单的调用:serverpackage mainimport ( "net/http" "fmt")func hello(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello,世界!!")}func l...
2018-06-26 17:10:53 3955
原创 golang解析复杂的json对象
json解析早就接触过了,只不过是一直用在php里面,今天有机会在golang中解析json,确实颠覆了php的json_decode(json)函数.好吧,今天我解析的汽车之家的接口,整个json数据用工具解析下来是这个样子:好吧,这里面有对象有数组交替,先去分析一下这个json的组成,懂行的小伙伴一定要注意这里面"[]"和"{}"的区别: ...
2018-06-26 16:03:34 20340 4
转载 golang原生对mysql的操作
下载驱动sudo go get github.com/go-sql-driver/mysql如果提示这样的失败信息:cannot download, $GOPATH not set. For more details see: go help gopath,可以使用如下命令解决sudo env GOPATH=/Users/chenjiebin/golang go get github.com/go...
2018-06-25 14:08:39 2440
原创 swoole websocket 支持ssl,修改成https
1. 安装swoole的openssl支持。重新编译安装swoole源码,加上--enable-openssl%PHP_BIN%/phpizecd swoole_src./configure --enable-opensslmake && make install利用php --ri swoole来查看是否安装成功,如图就是已经安装成功; 2. 代码中使用w...
2018-06-25 10:57:24 7225
原创 swoole创建多人多房间聊天室三
在上一个例子中,实现了多房间的多人聊天,这次这个聊天室有所改变,需要做到类似微信或QQ那样(app,pc同时使用),多个端口登入,保证数据的同时传递,考虑了很久,最好的办法就是在之前代码的基础上,再加一层redis的关系,结构脑图如下: 简单点说也就是group->房间room_id->uid->fd,因为全是键值对的关系...
2018-06-22 15:41:10 5439 1
原创 swoole创建多人多房间聊天室二
这次写的不依赖框架,不用nginx配置,只是依靠swoole的http_server和websocket,也是用的多端口监听,一边实现了web端的访问,一边实现了socket的发送; 文档在这里,可以多认真的读一下:https://wiki.swoole.com/wiki/page/525.html好的,直接上码; http.php<?phpnamesp...
2018-06-21 16:28:57 5384
原创 go简单爬虫的实现
单线程版本package mainimport ( "fmt" "strconv" "net/http" "os")func pachong(start, end int) { //明确爬的地址 url := "https://tieba.baidu.com/f?kw=%E6%AE%B5%E5%AD%90&ie=utf-8&pn="
2018-06-15 15:36:14 4367 1
原创 go中多人聊天室的搭建
首先利用的是go的多协程,再利用goroute之间的通信,对多个任务的管控 服务端的搭建: server.gopackage mainimport ( "net" "fmt")//储存用户信息的方法体Ctype Client struct { C chan string Name string Addr string}//储存在线用...
2018-06-14 17:58:34 5400
转载 vim命令大全
命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在vim窗口中打开一个新文件...
2018-06-14 16:16:10 99
原创 go中简单聊天室搭建以及net的使用
只是初步完成了客户端对服务端的连接,并返回数据,暂时没有做点对点,多对多的聊天,完后会做补充 server.gopackage mainimport ( "net" "fmt" "strings" "io" "time")//处理数据func chuli(conn net.Conn) { //结束后关闭连接 defer conn.Clos...
2018-06-13 16:29:43 6708
原创 swoole创建多人多房间聊天室一
核心的swoole代码 基本的cs(client-sercer)结构不变,这里利用的是redis的哈希和set来储存和分组;从而达到了分组,统计,定时推送等功能;最后利用onclose事件来剔除断开的连接,全部代码如下:(没做前端,就不展示了) 核心的swoole ws.php <?phpnamespace app\common;requir...
2018-06-13 11:52:01 11627
原创 Go的学习旅程8:系统研究goroute
主函数返回时,所有的goroutine都会被直接打断,程序退出。除了从主函数退出或者直接终止程序之外,没有其它的编程方法能够让一个goroutine来打断另一个的执行,但是之后可以看到一种方式来实现这个目的,通过goroutine之间的通信来让一个goroutine请求其它的goroutine,并让被请求的goroutine自行结束执行。
2018-06-07 13:54:49 7529
原创 进程,线程,协程之间的关系
进程、线程和协程是三个在多任务处理中常听到的概念,三者各有区别又相互联系。进程进程是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序”,它是CPU资源分配和调度的独立单位。 进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源;进程控制块用来记录进程的外部特征,描述进...
2018-06-07 13:32:03 6773
原创 window下面git公钥的配置
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。 由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在此之前,必须要生成SSH key。 以下给出windows中git bash关于ssh key的创建与配置。 步骤1 创建S...
2018-06-05 11:03:55 14985 1
原创 关于Nginx反向代理websocket,1分钟中断的解决
发心跳包,原理就是在有效地再读时间内进行通讯,重新刷新再读时间备注:配置的位置为localhost,给出简略地址 http { server { location / { root html; index index.html index.htm; proxy_pass http://...
2018-06-04 11:08:42 14123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人