그래서 메신저 SDK를 활용하는 CMS 시스템을 만들려고 노력하고 있습니다. 아이디어는 자기 도움 로봇이 특정 문제를 통해 고객을 안내 할 수있게하는 것입니다. 대화는 두 가지 방법으로 실행됩니다. 일반 응답으로 응답하는 스크립트가 있습니다. 클라이언트가받은 각 메시지에서 프로그램은 XML 파일에서 응답을 트리거하는 certan 키워드와 질문을 찾습니다. 복용량을 찾으면 스크립트로 계속 진행합니다. 프로그램은 작동하지만 비용은 들지 않습니다. 그것의 거대한 자원 돼지. 이 프로그램에는 로그인, 로그 아웃, 메시지 수신 및 수신과 같은 모든 메신저 기능을 처리하는 클래스가 있습니다. 나는 또한 대화라고 부르는 수업도 있습니다. 이것은 메시지가 어디서 왔는지, 누구에게 갈 것인지, 스크립트로 작성된 대화에서 어떤 위치에 있었는지를 유지합니다. 내 주요 프로그램에서 나는 얼마나 많은 다른 사이트들이 내가 사용하고있는 어트랙션을 도와 주는지에 따라 클라이언트 클래스의 X 양을 초기화한다. 메시지를 수신 할 때마다 새로운 대화 클래스가 만들어 지거나 존재하는 대화를 확인하고 스크립트 된 위치를 찾습니다. 분명히 들어오는 메시지의 키워드에 대한 모든 검사도 수행합니다. 이 메시지를 수신하기위한 공유 이벤트 처리기 코드입니다. 제 질문은, 이걸 더 효율적으로 만들 수있게하기 위해서입니다.리소스 및 효율성
Private Sub yahooclients_OnRec(ByVal sender As Object, ByVal buddy As String, ByVal message As String)
TotalRec = TotalRec + 1
Try
Dim c As YahooClient = CType(sender, YahooClient) 'Yahoo Client To Send Message From
showLog("From:" & buddy & " To:" & c.Account & " Message:" & message)
Dim msgSplit As String()
Dim retmsg As String
Dim smsg As String()
Dim n1 As XmlNode
Dim sran As New Random 'Random SPlit Message
Dim domran As New Random 'Random Domain ID
Dim Found1 As Boolean = False
Dim FoundIt As Integer = 0
Dim i As Integer = 0 'Keyword Counter
'Check Message For KeyWords By Splitting Each phrase by spaces
msgSplit = Split(message, " ")
For Each word In msgSplit
For Each value In KeywordInd
If value = word Then
n1 = m_nodelist.Item(i)
retmsg = n1.InnerText
GoTo ScrubMessage
End If
i = i + 1
Next
i = 0
Next
'Check For Conversations
If convos.Count = 0 Then
convos.Add(New Conversation(c.Account, buddy, 0))
retmsg = Script(0)
GoTo ScrubMessage
Else
For A As Integer = 0 To (convos.Count - 1)
If InStr(convos(A).TUser, c.Account) > 0 And InStr(convos(A).FUser, buddy) > 0 Then
Found1 = True
Exit For
End If
FoundIt = FoundIt + 1
Next
If Found1 = True Then
convos(FoundIt).SPosition = convos(FoundIt).SPosition + 1
'Send Next Position In Script
If convos(FoundIt).SPosition > (Script.Length - 1) Then
If convos(FoundIt).SPosition = Script.Length Then
TotalScript = TotalScript + 1
ToolStripStatusLabel10.Text = TotalScript
End If
Exit Sub
End If
retmsg = Script(convos(FoundIt).SPosition)
GoTo ScrubMessage
Else
convos.Add(New Conversation(c.Account, buddy, 0))
retmsg = Script(0)
GoTo ScrubMessage
End If
End If
ScrubMessage : '지구 밖으로 | SMSG = 분할 (retmsg, "|")
'Pull A Random Response
If smsg.Length > 1 Then
retmsg = smsg(sran.Next(0, (smsg.Length) - 1))
Else
retmsg = smsg(0)
End If
'Check For Domain Indicator
If InStr(retmsg, "%") > 0 Then
TotalLink = TotalLink + 1
End If
retmsg = Replace(retmsg, "%s", Domains(domran.Next(0, (Domains.Length - 1))))
If CheckBox2.Checked = True Then 'send Message With Font and Color
retmsg = "<font face=" & """" & fname & """" & ">" & "[#FF80C0m" & retmsg & "</font>"
End If
showLog(("Sending Message: " & retmsg & " To: " & buddy & " From: " & c.Account))
c.SendMessage(buddy, retmsg)
TotalSent = TotalSent + 1
ToolStripStatusLabel4.Text = TotalSent 'Updates Sent Counter
ToolStripStatusLabel6.Text = TotalRec 'Updates Rec Counter
ToolStripStatusLabel8.Text = TotalLink 'Updates Links counter
Catch ex As Exception
showLog(ex.ToString)
End Try
End Sub
이 프로그램은 정말 계정 많이 아무 resonsive 등 질문을하지 않습니다이된다
시작하기에 좋은 장소처럼 보이는 몇 가지가 있습니다
팁을 주셔서 대단히 감사합니다 !! –