【发布时间】:2016-09-19 09:18:57
【问题描述】:
我们在我们的一个应用程序中使用 websocket-sharp,它与服务器上的 SignalR Hub 建立 websocket 连接,我们能够发送文本消息并接收相同的响应,但无法发布 @987654322 @。
向服务器发送文本的代码是这样的:
public void TestGroupData(string groupname)
{
DataCarrier dataCarrier = new DataCarrier()
{
H = "BILHub",
M = "GetAllGroupsFor",
A = new string[] { groupname }
};
string wsPacket = JsonConvert.SerializeObject(payLoad);
this._ws.Send(wsPacket);
//this.MakeServerCall(dataCarrier);
}
当我们尝试使用以下代码发送byte[] 时,它不会通过:
public void TestFileData()
{
try
{
// Read the file data
Console.WriteLine("Started reading file");
string fileName = @"C:\Saurabh\Data\Song.mp3";
byte[] file = File.ReadAllBytes(fileName);
DataCarrier dataCarrier = new DataCarrier()
{
H = "BILHub",
M = "SendFile",
A = new object[] { file }
};
string wsPacket = JsonConvert.SerializeObject(dataCarrier);
this._ws.SendAsync(file , OnSendComplete);
}
catch (Exception ex)
{
Console.WriteLine(ex);
//throw;
}
}
对此有什么帮助吗?如何在_ws.sendAsync() 中设置我的中心名称?
【问题讨论】:
-
按照@bsoulier 的建议,使用signalR 发送实时消息示例您的mp3 已准备好下载,一旦您收到来自api 的消息下载mp3
-
我很好奇。为什么要使用 websocket-sharp 而不是 SignalR 客户端?
-
我们的客户端应用程序是使用 xamarin 开发的,并且信号器客户端不支持单平台的 websocket,这使我们使用 websocket-sharb。 @xleon
-
Xamarin 支持 SSE 作为传输协议,并且运行良好。除非您出于特定原因需要 websocket。我也很好奇您如何使用 WS 连接到信号器。我以为那是不可能的。有文档链接吗?
-
使用 AJAX 进行双向通信的 SSE 将比使用 WebSocket 连接具有更高的往返延迟和更高的客户端->服务器带宽。我的逻辑基于此处提供的详细信息:github.com/sta/websocket-sharp@xleon
标签: c# xamarin signalr websocket-sharp