예제 #1
0
        void SendReqUpgradeProtocol(NetSocket socket, string host, string protocol)
        {
            // ServerInfo serverInfo = socket.GetRemoteServerInfo();
            //  ServerType toServerType = (ServerType)serverInfo->GetTag();
            // Debug.Log("请求%s(%s:%d)更换通信协议为:%s!", SERVER_CN_NAME(toServerType), serverInfo->GetServerIP(), serverInfo->GetServerPort(), protocol.c_str());

            ByteStream sendStream = new ByteStream();
            HttpHeader header     = new HttpHeader();

            sendStream.isByteAlign = false;

            header.type   = 0;
            header.method = HttpRequestMethod.HTTP_METHOD_GET;
            header.url    = "/chat";
            header.ver    = "HTTP/1.1";

            if (host.Length != 0)
            {
                header.fieldMap["Host"] = host;
            }

            header.fieldMap["Connection"]            = "Upgrade";
            header.fieldMap["Upgrade"]               = protocol;
            header.fieldMap["Sec-WebSocket-Version"] = "13";

            byte[] bytedata  = Encoding.Default.GetBytes(Sec_WebSocket_Key);
            string basevalue = Convert.ToBase64String(bytedata);


            header.fieldMap["Sec-WebSocket-Key"] = basevalue;

            httpMsgProcesser.WriteHttpHeader(sendStream, header, false);
            socket.Send(sendStream);
        }
예제 #2
0
        public void ReqLogin(string account, string password)
        {
            clientSocket = server.GetSocket(clientSocketID);
            if (clientSocket == null)
            {
                return;
            }

            ByteStream     sendStream = new ByteStream();
            GamePackHeader header     = new GamePackHeader();

            header.type     = GamePackType.MSG_CLIENT_REQ_LOGIN_ENTER;
            header.dataSize = 0;

            int headerlen = gamepackMsgProcesser.WriteGamePackHeader(sendStream, header);

            byte[] accountArray = Encoding.UTF8.GetBytes(account);
            byte[] pwdArray     = Encoding.UTF8.GetBytes(password);

            sendStream.Write((int)DefValue.DEF_CLIENT_COMMON_LOGIN);
            sendStream.Write(account.Length);
            sendStream.WriteBytes(accountArray, 0, accountArray.Length);
            sendStream.Write(pwdArray.Length);
            sendStream.WriteBytes(pwdArray, 0, pwdArray.Length);
            clientSocket.Send(sendStream, headerlen, 0);
        }
예제 #3
0
 public static void SendData(LuaRawPacket rawPacket)
 {
     sNetSocket.Send(new RawPacket(rawPacket));
 }