Commit 9608d06e authored by AlexStocks's avatar AlexStocks

client just use cert file when build wss connection

parent cecb6883
......@@ -64,8 +64,6 @@ type (
// cert
CertFile string
KeyFile string
CACert string
// session pool
ConnectionNum int `default:"16"`
......
......@@ -18,6 +18,7 @@ import (
"os"
"os/signal"
// "strings"
"crypto/tls"
"sync/atomic"
"syscall"
"time"
......@@ -71,12 +72,14 @@ func initProfiling() {
func newSession(session getty.Session) error {
var (
ok bool
tcpConn *net.TCPConn
flag1, flag2 bool
tcpConn *net.TCPConn
)
if tcpConn, ok = session.Conn().(*net.TCPConn); !ok {
panic(fmt.Sprintf("%s, session.conn{%#v} is not tcp connection\n", session.Stat(), session.Conn()))
_, flag1 = session.Conn().(*tls.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 {
......@@ -85,10 +88,13 @@ func newSession(session getty.Session) error {
// else {
// session.SetCompressType(getty.CompressNone)
//}
tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay)
tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive)
tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize)
tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize)
if flag2 {
tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay)
tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive)
tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize)
tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize)
}
session.SetName(conf.GettySessionParam.SessionName)
session.SetPkgHandler(NewEchoPackageHandler())
......@@ -111,8 +117,6 @@ func initClient() {
conf.connectInterval,
gxnet.WSSHostAddress(conf.ServerHost, conf.ServerPort, conf.ServerPath),
conf.CertFile,
conf.KeyFile,
conf.CACert,
)
} else {
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-----
MIICpDCCAYwCCQCmNoM3vr5+FDANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDEwkx
MjcuMC4wLjEwHhcNMTcwMjA5MDY1MTUyWhcNMzAxMDE5MDY1MTUyWjAUMRIwEAYD
VQQDEwkxMjcuMC4wLjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDx
Ss48crmo/mkhs0+yj4e1QYBHaBasSWewJ2YN2YlszQygEIuT6CCXNWRF7Ota3ZCP
fHQtYQbyVUPdDdJM0GDvvBh1upet4GlB/OCkkrZxh2H6tyGfiKonZtBwZa4wnTJm
bdUE7jLSHBC3tMEbiUPtz8NGTTyFBGWVhkJh1/63ixRgM8lVwH/YshN1XWKdqcKy
IISheSQ/YOjC42wqpgszBp7Bpczab5QyQ11YWdesMLaVfo4ZCCD0i85AT1lWXd/w
N487OrzwFVvG4tLDBAyXxfKMHyfkPWdLAluI/Rb6b56icVTO5sSjvG+5iTAJNKtR
RZ7Tmh1VgsJ6urEbosHZAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBACuB6pHUV+hi
3us9MYBMIfDJOCHg/rrCGzo+blc8YLeCCnnpGgrMMhj3p2pgG35YNWsTGCsM84SJ
U8Ecl3kYCJV/hhLQnn7+72DY6Uzp595Vrb/EgmklNfykp9hvA0q9sBzZMBQpvijC
Q/1BN0ZeL4gGXD8oKqigD3+PNRBOLRWB0gHb9XSdwbHNCYLz91S3ahLyL1uOOn5a
m5lK6+ofAZszHihZ56hI+vthiekK5eLEz1rxwz0sLtU8FiGz2wo0SvzR35alyHFR
dR34QSqXjFKEYri1O0rBG8J8C3Y6swyVWK5oKPACT/RIOLmzX8VHZgcMAGNky7II
n0Iq4xnZKyM=
MIICHjCCAYegAwIBAgIQKpKqamBqmZ0hfp8sYb4uNDANBgkqhkiG9w0BAQsFADAS
MRAwDgYDVQQKEwdBY21lIENvMCAXDTcwMDEwMTAwMDAwMFoYDzIwODQwMTI5MTYw
MDAwWjASMRAwDgYDVQQKEwdBY21lIENvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQC5Nxsk6WjeaYazRYiGxHZ5G3FXSlSjV7lZeebItdEPzO8kVPIGCSTy/M5X
Nnpp3uVDFXQub0/O5t9Y6wcuqpUGMOV+XL7MZqSZlodXm0XhNYzCAjZ+URNjTHGP
NXIqdDEG5Ba8SXMOfY6H97+QxugZoAMFZ+N83ggr12IYNO/FbQIDAQABo3MwcTAO
BgNVHQ8BAf8EBAMCAqQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUw
AwEB/zA5BgNVHREEMjAwgglsb2NhbGhvc3SCC2V4YW1wbGUuY29thwR/AAABhxAA
AAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4GBAE5dr9q7ORmKZ7yZqeSL
305armc13A7UxffUajeJFujpl2jOqnb5PuKJ7fn5HQKGB0qSq3IHsFua2WONXcTW
Vn4gS0k50IaDpW+yl+ArIo0QwbjPIAcFysX10p9dVO7A1uEpHbRDzefem6r9uVGk
i7dOLEoC8hkfk6nJsNEIEqu6
-----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"
ProfilePort = 10080
# cert
# CertFile = "./conf/cert/client.crt"
# KeyFile = "./conf/cert/client.key"
# CACert = "./conf/cert/ca.crt"
CertFile = "./conf/cert/client.crt"
# connection pool
# 连接池连接数目
......@@ -38,7 +36,7 @@ SessionTimeout = "20s"
# for compress test
EchoString = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
# 发送echo请求次数
EchoTimes = 1
EchoTimes = 10
# app fail fast
FailFastTimeout = "3s"
......
......@@ -40,7 +40,11 @@ $(function() {
var $chatPage = $('.chat.page'); // The chatroom page
// 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'.
// socket.binaryType = 'arraybuffer';
// socket.binaryType = ''
......
......@@ -18,6 +18,7 @@ import (
"os"
"os/signal"
// "strings"
"crypto/tls"
"syscall"
"time"
)
......@@ -76,12 +77,14 @@ func initProfiling() {
func newSession(session getty.Session) error {
var (
ok bool
tcpConn *net.TCPConn
flag1, flag2 bool
tcpConn *net.TCPConn
)
if tcpConn, ok = session.Conn().(*net.TCPConn); !ok {
panic(fmt.Sprintf("%s, session.conn{%#v} is not tcp connection\n", session.Stat(), session.Conn()))
_, flag1 = session.Conn().(*tls.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 {
......@@ -90,10 +93,13 @@ func newSession(session getty.Session) error {
// else {
// session.SetCompressType(getty.CompressNone)
// }
tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay)
tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive)
tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize)
tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize)
if flag2 {
tcpConn.SetNoDelay(conf.GettySessionParam.TcpNoDelay)
tcpConn.SetKeepAlive(conf.GettySessionParam.TcpKeepAlive)
tcpConn.SetReadBuffer(conf.GettySessionParam.TcpRBufSize)
tcpConn.SetWriteBuffer(conf.GettySessionParam.TcpWBufSize)
}
session.SetName(conf.GettySessionParam.SessionName)
session.SetPkgHandler(NewEchoPackageHandler())
......
-----BEGIN CERTIFICATE-----
MIIDtTCCAp2gAwIBAgIJAORFQQ32vj3wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTcwMjA5MDk0ODUwWhcNMTcwMzExMDk0ODUwWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAsOIBziTk+UeDYB/5enXCutwWYwr55z4whYv2FP7iPAJkeQ40v/Zc1sur
LSI8412A+Cv0oc7nhfcjsp1bZZegrgflLfbSxf+r0PCAP+xyysqpDe5WXgySQHiQ
Ce9bgXXAeQqew/UgChLTbPi/7K2tYHWwXWoRN/AYIPNgYFxFUQHgUdnmtHvRFxTi
2RV9MNhmgbHDm3pWffADDSrrAYCUa+yTvdWkLUmi6oV1/H5JSYlFCplejqTGGEKM
JMLtH5gCIcMkMBGa3h0Shm2AK1IrRbv4ijtb/rXCdMSZRy4CzJQc/rAOOHQmfVak
tMENKvGRW8Hje9oLrvbsmLx1RXUOSQIDAQABo4GnMIGkMB0GA1UdDgQWBBQSfsEt
rXrqrkUoDufY2wOctCLtCjB1BgNVHSMEbjBsgBQSfsEtrXrqrkUoDufY2wOctCLt
CqFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV
BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAORFQQ32vj3wMAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHVz8Q9gIx9bmAlGFh+hpoGIquXU4aDs
09EVEbMqvxh62puyOJHLiZa1iHjZP2ZH82w1t2AzHefJlA5lNDqRs8Jpo/ueOMsK
CJw/jntkjQGyKO7FLsvzei5Ch+oIQRJoiOaPioIS2B4vF1JZ7qknWktfvJSvt80c
ZQgnliTT7ZozrVTQqSWfTmCnwQzM+vyFRyXjhOU7aQYaMLbFncTyYikvWehQe7zY
COtKPiGDFZkSmD/Tlzu/0VWkN+f7naDytDVE+w+7u59NdnmbFiLAzVXp6N1urjyR
0SeDWzeXaAsBfcLj/EAJHd/N05sDjyKrlw4QRPViZypIgyQxtwGImVo=
MIICHjCCAYegAwIBAgIQKpKqamBqmZ0hfp8sYb4uNDANBgkqhkiG9w0BAQsFADAS
MRAwDgYDVQQKEwdBY21lIENvMCAXDTcwMDEwMTAwMDAwMFoYDzIwODQwMTI5MTYw
MDAwWjASMRAwDgYDVQQKEwdBY21lIENvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQC5Nxsk6WjeaYazRYiGxHZ5G3FXSlSjV7lZeebItdEPzO8kVPIGCSTy/M5X
Nnpp3uVDFXQub0/O5t9Y6wcuqpUGMOV+XL7MZqSZlodXm0XhNYzCAjZ+URNjTHGP
NXIqdDEG5Ba8SXMOfY6H97+QxugZoAMFZ+N83ggr12IYNO/FbQIDAQABo3MwcTAO
BgNVHQ8BAf8EBAMCAqQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUw
AwEB/zA5BgNVHREEMjAwgglsb2NhbGhvc3SCC2V4YW1wbGUuY29thwR/AAABhxAA
AAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4GBAE5dr9q7ORmKZ7yZqeSL
305armc13A7UxffUajeJFujpl2jOqnb5PuKJ7fn5HQKGB0qSq3IHsFua2WONXcTW
Vn4gS0k50IaDpW+yl+ArIo0QwbjPIAcFysX10p9dVO7A1uEpHbRDzefem6r9uVGk
i7dOLEoC8hkfk6nJsNEIEqu6
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
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
-----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