だから私は、私のページを訪問し、私はこの使用してビデオモードを設定するとき:SignalR JSコマンドは、WebSocketを初めて上で実行されません(vb.net)
$("#pushStreamButton").click(function() {
if (initialized) {
var channelSelected = $("#channelSelect").val();
var gameNameEntered = $("#gameName").val();
var channelNameEntered = $("#channelName").val();
if (gameNameEntered.length < 1) return;
$("#goLiveWindow").dialog("close");
serverHub.server.setVideoMode(channelSelected, gameNameEntered, "", channelNameEntered);
}
});
を、これはバックエンドである
予想通りPublic Sub setVideoMode(ByVal mode As String, ByVal details As String, ByVal socialMessage As String, ByVal channel As String)
Dim user As FrontPageUser = Connections.matchFirst(Connections.frontPageUsers, Context.ConnectionId)
If user Is Nothing Then Return
If mode = "youtube" Then
Try
My.Computer.FileSystem.DeleteFile(HttpContext.Current.Server.MapPath("/images/streamavatar.gif"))
Catch Ex As Exception
Console.Write(Ex)
End Try
End If
この機能、それが仕事だん、しかし、私は戻って、デフォルトのユーチューブ
$("#stopStreamButton").click(function() {
serverHub.server.setVideoMode("youtube", "", "", "");
});
へのチャネルを元に戻しボタンを持っています0最初のボタンを使用してチャンネルを変更した後、2番目のボタンをクリックしても何も起こりません。コマンドを実行しようとしても奇妙です。しかし、ページをリロードすると、ボタンが正しく機能し、チャンネルが元に戻ります。
SSE/longpolling/foreverframeを使用している場合、この問題は存在しません。この問題は、トランスポートとしてWebソケットを使用している場合にのみ発生します。私はWebSocketを使って比較的知られていない水域を歩いています.JavaScriptとバックエンドコードをデバッグしようとしました.JavaScriptは正しく実行されていないようですが、エラーは出ません。
なぜこのようなことが起こっているのか分かっていて、どこに間違っているのか説明できれば、それは分かります。
追加:実際にはJava側からすべての機能を停止しているように見えますが、しばらくして接続を解除して強制的にリフレッシュするように見えますが、何が原因なのかわかりませんが、ウェブソケット。
編集 -
原因をデバッグする際に、私がこの機能を無効にすると、それは、コマンドをぶら下げ、ブロッキングなしで動作しますが、加入者にプッシュ通知を送信し、他の機能にリンクされているように見えるが、この機能が初期化されるときそれは関数がそう
Shared Function sendPushFox(username, pushDetails) As String
Dim avatar = Utils.getAvatarPath(username)
If avatar.Contains("/forum/download/file.php?avatar=") OrElse avatar.Contains("/images/solaire.png") Then
Try
My.Computer.Network.DownloadFile("https://foo.com" & avatar, HttpContext.Current.Server.MapPath("/images/streamavatar.gif"))
Catch ex As Exception
ChatProcessor.postNewMessage(Nothing, Nothing, ChatMessage.MessageType.Channel_Mod, "Problem downloading streamer avatar." & ex.ToString)
End Try
Else
Try
My.Computer.Network.DownloadFile(avatar, HttpContext.Current.Server.MapPath("/images/streamavatar.gif"))
Catch ex As Exception
ChatProcessor.postNewMessage(Nothing, Nothing, ChatMessage.MessageType.Channel_Mod, "Problem downloading streamer avatar." & ex.ToString)
End Try
End If
Dim query As String = "SELECT subscribeid FROM custom_user_data WHERE NOT subscribeid = ' ';"
Dim connection As New MySqlConnection(Utils.connectionString) : connection.Open()
Dim command As MySqlCommand = New MySqlCommand(query, connection)
Dim reader As MySqlDataReader = command.ExecuteReader()
Dim regList As New List(Of String)
Do While reader.Read
regList.Add(reader.GetString(0))
' IO.File.AppendAllText(Utils.serverPath & "errorlog.txt", reg1)
Loop
connection.Close()
Dim query2 As String = "SELECT p256dh FROM custom_user_data WHERE NOT p256dh = ' ';"
Dim connection2 As New MySqlConnection(Utils.connectionString) : connection2.Open()
Dim command2 As MySqlCommand = New MySqlCommand(query2, connection2)
Dim reader2 As MySqlDataReader = command2.ExecuteReader()
Dim regList2 As New List(Of String)
Do While reader2.Read
regList2.Add(reader2.GetString(0))
' IO.File.AppendAllText(Utils.serverPath & "errorlog.txt", reg1)
Loop
connection2.Close()
Dim query3 As String = "SELECT authsecret FROM custom_user_data WHERE NOT authsecret = ' ';"
Dim connection3 As New MySqlConnection(Utils.connectionString) : connection3.Open()
Dim command3 As MySqlCommand = New MySqlCommand(query3, connection3)
Dim reader3 As MySqlDataReader = command3.ExecuteReader()
Dim regList3 As New List(Of String)
Do While reader3.Read
regList3.Add(reader3.GetString(0))
' IO.File.AppendAllText(Utils.serverPath & "errorlog.txt", reg1)
Loop
connection3.Close()
Dim reg1 = regList.ToArray
Dim reg2 = regList2.ToArray
Dim reg3 = regList3.ToArray
Dim payload = "{ ""title"": ""foo bar"", ""body"": """ & username.name.ToString & " playing " & pushDetails.ToString & """, ""icon"" : ""https://foo.com/images/streamavatar.gif"" }"
For i As Integer = 0 To reg1.Length - 1
Dim webPushClient = New WebPushClient()
Dim subject = "https://foo.com"
Dim vapidKeys As VapidDetails = VapidHelper.GenerateVapidKeys()
Dim vapidDetails = New VapidDetails(subject, vapidKeys.PublicKey, vapidKeys.PrivateKey)
Try
Console.WriteLine("Public {0}", vapidKeys.PublicKey)
Console.WriteLine("Private {0}", vapidKeys.PrivateKey)
Dim subscription = New PushSubscription(reg1(i), reg2(i), reg3(i))
webPushClient.SetGCMAPIKey("key here")
webPushClient.SendNotification(subscription, payload, vapidDetails)
Catch Ex As Exception
Console.Write(Ex)
End Try
Next
Return Nothing
End Function
を完了した一見した後、それはlongpollingとなどに機能するためには、WebSocketをとの衝突だけど、私は、なぜまだわからないんだけど、それが唯一の関数を呼び出すユーザーに影響を及ぼし、ハング。
は、不思議なことに、これは、ここで完全に罰金
For i As Integer = 0 To reg1.Length - 1
webPushClient.SetGCMAPIKey("key here")
webPushClient.SendNotification(subscription, payload, vapidDetails)
Next
その機能をたまたま「次」の後にハングアップしたように見えるが、それはのための終わりに達すると、それが続くことはありませんただ、それは後に、文字通り何もしません次に、何も起こりません、何も起こりません、ブレークと結果が期待どおりになっている、私はなぜそれが続かない、そしてウェブソケットのtrasports、longpollingなどを使用しているだけでうんざりしています