将创建socket的方法放入单独的包中
本文代码查看github:
https://github.com/zboyco/go-server/tree/step-4
修改以下项目结构,将之前的代码放到server包中,main.go中直接调用就行了
项目结构如下:
1 | |-go-server |
socket.go 中增加一个结构体,增加一个工厂函数用来返回一个新的Server.
代码如下:
本文代码查看github:
https://github.com/zboyco/go-server/tree/step-4
修改以下项目结构,将之前的代码放到server包中,main.go中直接调用就行了
项目结构如下:
1 | |-go-server |
socket.go 中增加一个结构体,增加一个工厂函数用来返回一个新的Server.
代码如下:
将数据读取放入单独的方法中,利用goroutine运行
本文代码查看github:
https://github.com/zboyco/go-server/tree/step-3
要实现多个客户端连接,需要将每个客户端放入单独的线程处理,通常我们使用多线程实现这个功能,但Go语言提供的 goroutine, 可以非常方便的实现并行(goroutine并不是多线程)
利用for循环,等待客户端发送数据
本文代码查看github:
https://github.com/zboyco/go-server/tree/step-2
修改上一步的代码,让服务端循环接收客户端发送的消息,主要使用for循环,直接上代码
###第一步 实现socket服务
简单实现一个socket服务,能接收客户端连接并接收数据
本文代码查看github:
https://github.com/zboyco/go-server/tree/step-1
Go语言的socket服务由标准库 net
提供,主要就使用三个方法.
ResolveTCPAddr
用于获取一个TCPAddr
ListenTCP
开始监听
Accept
接受会话
#说明
最近开始学习Go语言,尝试写一个简单的Socket服务端,计划实现以下一些功能:
下面一步步的实现吧,我是新手
1 | type user struct { |
1 | func (p *Pool) Release(r io.Closer) { |
1 | type Test struct { |
1 | select { |
1 | select { |
今天在看一个项目的时候,无意间看到推荐 reach/router 这个React路由组件,然后就看了下组件的使用,感觉使用比react-router更加简单直接,库也比较小,用法和react-router类似但是更简洁,这里记录下换成reach时碰到的问题,官网地址如下:
1 | <Router primary={false}> |
1 | render( |
1 | import React, { Component } from 'react'; |
学习react时,在项目中使用sass编辑样式,记录配置方法:
#安装
1 | npm install sass-loader node-sass --save-dev |
#配置
打开react的webpack配置,找到module下的rules,然后找到最后一个配置,修改成如下的样子
1 | { |
注意,我们只是修改了 webpack.config.dev.js, 如果要在生产环境中生效,需要在webpack.config.prod.js做同样的配置。
计划用 React 做一个前台展示网站,设计用到了jQuery Smoove这个插件,所以在网上找了下怎么在 React 中引入jQuery,并让插件可以正常使用.
npm install jquery
注意,全是小写字母,不能写成 jQuery,会安装成功,但无法编译通过。
import $ from 'jquery';
node_modules/react-scripts/config/webpack.config.dev.js(webpack.config.prod.js)
1 | new webpack.ProvidePlugin({ |
大功告成!
create-react-app 初始化的项目在node_modules,直接修改的话重新安装包就被覆盖了,如果有需要的话,可以执行 yarn eject,把引用的包本地化后再修改,或者使用其他脚手架初始化项目也可。
Asp.Net Core WebAPI with JWT Authorization.
项目代码:https://github.com/zboyco/AspNetCoreWebAPI-JWT-Authorize
初始化 Asp.Net Core WebAPI 项目