Commit 9608d06e authored by AlexStocks's avatar AlexStocks

client just use cert file when build wss connection

parent cecb6883
...@@ -64,8 +64,6 @@ type ( ...@@ -64,8 +64,6 @@ type (
// cert // cert
CertFile string CertFile string
KeyFile string
CACert string
// session pool // session pool
ConnectionNum int `default:"16"` ConnectionNum int `default:"16"`
......
...@@ -18,6 +18,7 @@ import ( ...@@ -18,6 +18,7 @@ import (
"os" "os"
"os/signal" "os/signal"
// "strings" // "strings"
"crypto/tls"
"sync/atomic" "sync/atomic"
"syscall" "syscall"
"time" "time"
...@@ -71,12 +72,14 @@ func initProfiling() { ...@@ -71,12 +72,14 @@ func initProfiling() {
func newSession(session getty.Session) error { func newSession(session getty.Session) error {
var ( var (
ok bool flag1, flag2 bool
tcpConn *net.TCPConn tcpConn *net.TCPConn
) )
if tcpConn, ok = session.Conn().(*net.TCPConn); !ok { _, flag1 = session.Conn().(*tls.Conn)
panic(fmt.Sprintf("%s, session.conn{%#v} is not tcp connection\n", session.Stat(), session.Conn())) tcpConn, flag2 = session.Conn().(*net.TCPConn)
if !flag1 && !flag2 {
panic(fmt.Sprintf("%s, session.conn{%#v} is not tcp/tls connection\n", session.Stat(), session.Conn()))
} }
if conf.GettySessionParam.CompressEncoding { if conf.GettySessionParam.CompressEncoding {
...@@ -85,10 +88,13 @@ func newSession(session getty.Session) error { ...@@ -85,10 +88,13 @@ func newSession(session getty.Session) error {
// else { // else {
// session.SetCompressType(getty.CompressNone) // session.SetCompressType(getty.CompressNone)
//} //}
if flag2 {
tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay) tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay)
tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive) tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive)
tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize) tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize)
tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize) tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize)
}
session.SetName(conf.GettySessionParam.SessionName) session.SetName(conf.GettySessionParam.SessionName)
session.SetPkgHandler(NewEchoPackageHandler()) session.SetPkgHandler(NewEchoPackageHandler())
...@@ -111,8 +117,6 @@ func initClient() { ...@@ -111,8 +117,6 @@ func initClient() {
conf.connectInterval, conf.connectInterval,
gxnet.WSSHostAddress(conf.ServerHost, conf.ServerPort, conf.ServerPath), gxnet.WSSHostAddress(conf.ServerHost, conf.ServerPort, conf.ServerPath),
conf.CertFile, conf.CertFile,
conf.KeyFile,
conf.CACert,
) )
} else { } else {
client.gettyClient = getty.NewClient( client.gettyClient = getty.NewClient(
......
-----BEGIN CERTIFICATE-----
MIIDIDCCAgigAwIBAgIJAPQwJWS2pKjcMA0GCSqGSIb3DQEBBQUAMBQxEjAQBgNV
BAMTCTEyNy4wLjAuMTAeFw0xNzAyMDkwNjUxNTFaFw0zMDEwMTkwNjUxNTFaMBQx
EjAQBgNVBAMTCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBALJt2JNCe/K0/x+ITJpazanaRYohaVUuMPFN04a7tqFocfrxej2sGBl+YN/n
9SWSgABUeEu9/Cyo+um1ArjaIydfpFufY9H+JmtJqvO+s00LD67ouN7V+nFXJcSt
qbBOqtaDmUwk1fdPOvOPi8e5Sp6o9z2CafsAxRQT5rru3hTdt2fLuVdCDIHiPLvZ
DdzcrEcP1xC2uSMFai0GdqZoRyaz2lqI7XBqWpijddeuD5R7PY1wQ/OPYBI3Y1c2
DSr0gBT0AfdsN+bo07hu3ZB+id0V9ZMfkgiWWZFkiiY+R2aRGTB02n2nrSDEAaY0
95FPYqZmpbafrPLb/74mb3DAt9ECAwEAAaN1MHMwHQYDVR0OBBYEFBfKz0wggCwi
+DWdTbCXvhM2FiGwMEQGA1UdIwQ9MDuAFBfKz0wggCwi+DWdTbCXvhM2FiGwoRik
FjAUMRIwEAYDVQQDEwkxMjcuMC4wLjGCCQD0MCVktqSo3DAMBgNVHRMEBTADAQH/
MA0GCSqGSIb3DQEBBQUAA4IBAQCE3v+e85TZJ5azrrV/ow1TIMd6szQV9TLEbxTK
tQsT7l7weRxzOARYN/UO9lS4RHgi6A0dNJDK/+AhXGnZ0KwCfU3eUF933sM7kWwJ
fULvwey7arAiWvLjP8pii4o6oyiZ8yk3V2VuiCLt70x7BvJV01LAmlQTHBS1yPb5
wDrDAi4WzfxC5mGmJjR3o1IdbiVB0MuTt1vUwDDhwRcd/y1G3t1bf6uC6k1aiDce
O5iFsjNdrGA2xBl9ezYoLWKTi3Q5qFNrwMgLcIhX90YfjJuvtTbdlyxQ8LucX1yk
CcRlHiI73hXXKASl3dSpqM2nFgT6J7tR8ustrrgsV96LETkm
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIICpDCCAYwCCQCmNoM3vr5+FDANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDEwkx MIICHjCCAYegAwIBAgIQKpKqamBqmZ0hfp8sYb4uNDANBgkqhkiG9w0BAQsFADAS
MjcuMC4wLjEwHhcNMTcwMjA5MDY1MTUyWhcNMzAxMDE5MDY1MTUyWjAUMRIwEAYD MRAwDgYDVQQKEwdBY21lIENvMCAXDTcwMDEwMTAwMDAwMFoYDzIwODQwMTI5MTYw
VQQDEwkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDx MDAwWjASMRAwDgYDVQQKEwdBY21lIENvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
Ss48crmo/mkhs0+yj4e1QYBHaBasSWewJ2YN2YlszQygEIuT6CCXNWRF7Ota3ZCP iQKBgQC5Nxsk6WjeaYazRYiGxHZ5G3FXSlSjV7lZeebItdEPzO8kVPIGCSTy/M5X
fHQtYQbyVUPdDdJM0GDvvBh1upet4GlB/OCkkrZxh2H6tyGfiKonZtBwZa4wnTJm Nnpp3uVDFXQub0/O5t9Y6wcuqpUGMOV+XL7MZqSZlodXm0XhNYzCAjZ+URNjTHGP
bdUE7jLSHBC3tMEbiUPtz8NGTTyFBGWVhkJh1/63ixRgM8lVwH/YshN1XWKdqcKy NXIqdDEG5Ba8SXMOfY6H97+QxugZoAMFZ+N83ggr12IYNO/FbQIDAQABo3MwcTAO
IISheSQ/YOjC42wqpgszBp7Bpczab5QyQ11YWdesMLaVfo4ZCCD0i85AT1lWXd/w BgNVHQ8BAf8EBAMCAqQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUw
N487OrzwFVvG4tLDBAyXxfKMHyfkPWdLAluI/Rb6b56icVTO5sSjvG+5iTAJNKtR AwEB/zA5BgNVHREEMjAwgglsb2NhbGhvc3SCC2V4YW1wbGUuY29thwR/AAABhxAA
RZ7Tmh1VgsJ6urEbosHZAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBACuB6pHUV+hi AAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4GBAE5dr9q7ORmKZ7yZqeSL
3us9MYBMIfDJOCHg/rrCGzo+blc8YLeCCnnpGgrMMhj3p2pgG35YNWsTGCsM84SJ 305armc13A7UxffUajeJFujpl2jOqnb5PuKJ7fn5HQKGB0qSq3IHsFua2WONXcTW
U8Ecl3kYCJV/hhLQnn7+72DY6Uzp595Vrb/EgmklNfykp9hvA0q9sBzZMBQpvijC Vn4gS0k50IaDpW+yl+ArIo0QwbjPIAcFysX10p9dVO7A1uEpHbRDzefem6r9uVGk
Q/1BN0ZeL4gGXD8oKqigD3+PNRBOLRWB0gHb9XSdwbHNCYLz91S3ahLyL1uOOn5a i7dOLEoC8hkfk6nJsNEIEqu6
m5lK6+ofAZszHihZ56hI+vthiekK5eLEz1rxwz0sLtU8FiGz2wo0SvzR35alyHFR
dR34QSqXjFKEYri1O0rBG8J8C3Y6swyVWK5oKPACT/RIOLmzX8VHZgcMAGNky7II
n0Iq4xnZKyM=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEA8UrOPHK5qP5pIbNPso+HtUGAR2gWrElnsCdmDdmJbM0MoBCL
k+gglzVkRezrWt2Qj3x0LWEG8lVD3Q3STNBg77wYdbqXreBpQfzgpJK2cYdh+rch
n4iqJ2bQcGWuMJ0yZm3VBO4y0hwQt7TBG4lD7c/DRk08hQRllYZCYdf+t4sUYDPJ
VcB/2LITdV1inanCsiCEoXkkP2DowuNsKqYLMwaewaXM2m+UMkNdWFnXrDC2lX6O
GQgg9IvOQE9ZVl3f8DePOzq88BVbxuLSwwQMl8XyjB8n5D1nSwJbiP0W+m+eonFU
zubEo7xvuYkwCTSrUUWe05odVYLCerqxG6LB2QIDAQABAoIBAFNaAvowq1/sWobQ
uVQ2bqu3b8e69jIXvWDFi2R3ZBiYkKbucDjss+1n/TaGjBq8dQaL+FoArXSi7al7
78ynIwVNlal9ho4C+nlYEIXpRGrdWIRSJKRGgnjP9GsPROf4NYPapv5oBlg8Z63+
G8MWXMfWwF8VqTVN+oV3dpD0G0JtdihhemcPnzCp+IhGy/VdjuwRpDjZ73ct+zaG
edioyZacLcnRTxqw7YiVd0qs968gehKyCGzWK9W+JlY6Lxv626xXR5c+2a1MiHhk
jiWOeXw0AFZ/Y/kaa3TrMnxQCqpigX5lSFG6jCu/9v3BuYHU3toz7n+ofvti5RAN
El1fMgECgYEA+3CbWszxLwg6fMr9ZgzxbNKuOLmvrhQB0jskQeKX35j15bbV3vPx
srGiltOg+TwZlnNM5R1Pg6OHRTZuCyXu9baKIKf92q3mici+SqVOfOlckxYcfE1T
7GhikLucfxzVpxRShaDrajgtYCkv4IF/gDOJyJlxf0+i+pRgQvcyEJkCgYEA9asV
udmx8jhoYI3owNLgea2Mr5co4rOXyA8Sd2ZjKGiSvJ2WgjFCYyoiPcJEqiYifNtH
4913OXrVptpy5B56BfM35e+ES1GX3LanW7Vl37YJ+SFFnoAq2EMhQIMOQrCGsDnV
aa36SpjVjqsEIuzl4vK7buCfY3AdCsaFGgSIw0ECgYBBk0ixEaoFHhxC153ms5Fz
VC7j1Gmg+M7QyWPXWwVI51eaJWj50J1EgVdqBp+A4M+7kS6IwnAuYMOypVNlzOrZ
YlX71lQ6aAgr/xLB3QLvSN0/7xBWysQMb9zk6kkSTa7a+E3dU+6RsT0ESzmVT7C0
+rwAeSREk7xppbDFRjrkYQKBgHYSVgzOzjGGXtQZIEack3qnqLgzxFjAzDBA3jU4
pmujZvL0IoRMPIYAmBhqqCnGzkiH85NWu5iKqujYkOOGqkr1zGXcqg6xFnXj66eu
FVph2YU9MoKtQupRyUeCNXZj9Tf5c9Ko5WS489rv4rsOdKaQ1vjBSJm4Jp0pMIuC
pmCBAoGAVG6iDOPiQoZLroF4LRv7OfKxs+tcHA/EbeHDNtDlE/s8pbimSVb7valy
nV3nQ5TouxDBeJjlaH91oVK3OeeOCToBf52oMu/w3XngAdSd/6iq6q192UvIFvcR
Q/jsKRp/5tqhrN4HK4uDV2dtcHZb3J77l0kR4ha4TNgKyPqov64=
-----END RSA PRIVATE KEY-----
...@@ -16,9 +16,7 @@ ServerPath = "/echo" ...@@ -16,9 +16,7 @@ ServerPath = "/echo"
ProfilePort = 10080 ProfilePort = 10080
# cert # cert
# CertFile = "./conf/cert/client.crt" CertFile = "./conf/cert/client.crt"
# KeyFile = "./conf/cert/client.key"
# CACert = "./conf/cert/ca.crt"
# connection pool # connection pool
# 连接池连接数目 # 连接池连接数目
...@@ -38,7 +36,7 @@ SessionTimeout = "20s" ...@@ -38,7 +36,7 @@ SessionTimeout = "20s"
# for compress test # for compress test
EchoString = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" EchoString = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
# 发送echo请求次数 # 发送echo请求次数
EchoTimes = 1 EchoTimes = 10
# app fail fast # app fail fast
FailFastTimeout = "3s" FailFastTimeout = "3s"
......
...@@ -40,7 +40,11 @@ $(function() { ...@@ -40,7 +40,11 @@ $(function() {
var $chatPage = $('.chat.page'); // The chatroom page var $chatPage = $('.chat.page'); // The chatroom page
// var socket = new WebSocket('ws://192.168.35.1:10000/echo'); // var socket = new WebSocket('ws://192.168.35.1:10000/echo');
var socket = new WebSocket('wss://' + serverAddress + '/echo'); var socket = new WebSocket('wss://' + serverAddress + '/echo', {
protocolVersion: 8,
// origin: 'https://' + serverAddress,
rejectUnauthorized: false
});
// // Setting binaryType to accept received binary as either 'blob' or 'arraybuffer'. In default it is 'blob'. // // Setting binaryType to accept received binary as either 'blob' or 'arraybuffer'. In default it is 'blob'.
// socket.binaryType = 'arraybuffer'; // socket.binaryType = 'arraybuffer';
// socket.binaryType = '' // socket.binaryType = ''
......
...@@ -18,6 +18,7 @@ import ( ...@@ -18,6 +18,7 @@ import (
"os" "os"
"os/signal" "os/signal"
// "strings" // "strings"
"crypto/tls"
"syscall" "syscall"
"time" "time"
) )
...@@ -76,12 +77,14 @@ func initProfiling() { ...@@ -76,12 +77,14 @@ func initProfiling() {
func newSession(session getty.Session) error { func newSession(session getty.Session) error {
var ( var (
ok bool flag1, flag2 bool
tcpConn *net.TCPConn tcpConn *net.TCPConn
) )
if tcpConn, ok = session.Conn().(*net.TCPConn); !ok { _, flag1 = session.Conn().(*tls.Conn)
panic(fmt.Sprintf("%s, session.conn{%#v} is not tcp connection\n", session.Stat(), session.Conn())) tcpConn, flag2 = session.Conn().(*net.TCPConn)
if !flag1 && !flag2 {
panic(fmt.Sprintf("%s, session.conn{%#v} is not tcp/tls connection\n", session.Stat(), session.Conn()))
} }
if conf.GettySessionParam.CompressEncoding { if conf.GettySessionParam.CompressEncoding {
...@@ -90,10 +93,13 @@ func newSession(session getty.Session) error { ...@@ -90,10 +93,13 @@ func newSession(session getty.Session) error {
// else { // else {
// session.SetCompressType(getty.CompressNone) // session.SetCompressType(getty.CompressNone)
// } // }
if flag2 {
tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay) tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay)
tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive) tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive)
tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize) tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize)
tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize) tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize)
}
session.SetName(conf.GettySessionParam.SessionName) session.SetName(conf.GettySessionParam.SessionName)
session.SetPkgHandler(NewEchoPackageHandler()) session.SetPkgHandler(NewEchoPackageHandler())
......
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDtTCCAp2gAwIBAgIJAORFQQ32vj3wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV MIICHjCCAYegAwIBAgIQKpKqamBqmZ0hfp8sYb4uNDANBgkqhkiG9w0BAQsFADAS
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX MRAwDgYDVQQKEwdBY21lIENvMCAXDTcwMDEwMTAwMDAwMFoYDzIwODQwMTI5MTYw
aWRnaXRzIFB0eSBMdGQwHhcNMTcwMjA5MDk0ODUwWhcNMTcwMzExMDk0ODUwWjBF MDAwWjASMRAwDgYDVQQKEwdBY21lIENvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 iQKBgQC5Nxsk6WjeaYazRYiGxHZ5G3FXSlSjV7lZeebItdEPzO8kVPIGCSTy/M5X
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB Nnpp3uVDFXQub0/O5t9Y6wcuqpUGMOV+XL7MZqSZlodXm0XhNYzCAjZ+URNjTHGP
CgKCAQEAsOIBziTk+UeDYB/5enXCutwWYwr55z4whYv2FP7iPAJkeQ40v/Zc1sur NXIqdDEG5Ba8SXMOfY6H97+QxugZoAMFZ+N83ggr12IYNO/FbQIDAQABo3MwcTAO
LSI8412A+Cv0oc7nhfcjsp1bZZegrgflLfbSxf+r0PCAP+xyysqpDe5WXgySQHiQ BgNVHQ8BAf8EBAMCAqQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUw
Ce9bgXXAeQqew/UgChLTbPi/7K2tYHWwXWoRN/AYIPNgYFxFUQHgUdnmtHvRFxTi AwEB/zA5BgNVHREEMjAwgglsb2NhbGhvc3SCC2V4YW1wbGUuY29thwR/AAABhxAA
2RV9MNhmgbHDm3pWffADDSrrAYCUa+yTvdWkLUmi6oV1/H5JSYlFCplejqTGGEKM AAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4GBAE5dr9q7ORmKZ7yZqeSL
JMLtH5gCIcMkMBGa3h0Shm2AK1IrRbv4ijtb/rXCdMSZRy4CzJQc/rAOOHQmfVak 305armc13A7UxffUajeJFujpl2jOqnb5PuKJ7fn5HQKGB0qSq3IHsFua2WONXcTW
tMENKvGRW8Hje9oLrvbsmLx1RXUOSQIDAQABo4GnMIGkMB0GA1UdDgQWBBQSfsEt Vn4gS0k50IaDpW+yl+ArIo0QwbjPIAcFysX10p9dVO7A1uEpHbRDzefem6r9uVGk
rXrqrkUoDufY2wOctCLtCjB1BgNVHSMEbjBsgBQSfsEtrXrqrkUoDufY2wOctCLt i7dOLEoC8hkfk6nJsNEIEqu6
CqFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAORFQQ32vj3wMAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHVz8Q9gIx9bmAlGFh+hpoGIquXU4aDs
09EVEbMqvxh62puyOJHLiZa1iHjZP2ZH82w1t2AzHefJlA5lNDqRs8Jpo/ueOMsK
CJw/jntkjQGyKO7FLsvzei5Ch+oIQRJoiOaPioIS2B4vF1JZ7qknWktfvJSvt80c
ZQgnliTT7ZozrVTQqSWfTmCnwQzM+vyFRyXjhOU7aQYaMLbFncTyYikvWehQe7zY
COtKPiGDFZkSmD/Tlzu/0VWkN+f7naDytDVE+w+7u59NdnmbFiLAzVXp6N1urjyR
0SeDWzeXaAsBfcLj/EAJHd/N05sDjyKrlw4QRPViZypIgyQxtwGImVo=
-----END CERTIFICATE----- -----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment