我正在为我的Android应用程序使用vk sdk。该应用程序可以向其他用户发送和接收消息。为了获取我使用过的消息列表,/method/messages.getHistory但是当另一个用户向我发送消息时如何监听新消息?例如在firebase中-因为它是实时数据库,所以我们可以做到。但是,如何像vk sdk一样实时知道何时发送新消息呢?我有一个想法可以启动Service,它每5秒钟检查一次新消息,但是我认为这是一个糟糕的解决方案,因为它会耗尽电池电量等。
我写了一个简单的WebSocketServer,我在MSDN网站上找到了它.但它不起作用.你能解释一下我应该如何运行这个简单的项目,因为我启动它但没有发生任何事情.
服务器
namespace WebSocketServer
{
class Program
{
static void Main(string[] args)
{
var task1 = Run();
// Console.ReadLine();
}
public static async Task Run()
{
HttpListener s = new HttpListener();
s.Prefixes.Add("http://localhost:8000/ws");
s.Start();
var hc = await s.GetContextAsync();
if (!hc.Request.IsWebSocketRequest)
{
hc.Response.StatusCode = 400;
hc.Response.Close();
return;
}
var wsc = await hc.AcceptWebSocketAsync(null);
var ws = wsc.WebSocket;
for (int i = 0; i != 10; ++i)
{
// await Task.Delay(20);
var time = DateTime.Now.ToLongTimeString();
var buffer = Encoding.UTF8.GetBytes(time);
var segment = …Run Code Online (Sandbox Code Playgroud) 如何在WCF的帮助下通过邮寄发送xml数据?
例如,我有一些代码:
public interface IServiceForILobby
{
[OperationContract]
[WebInvoke(Method = "POST")]
string SendXml(string response);
}
Run Code Online (Sandbox Code Playgroud)
//这是主持人
static void Main(string[] args)
{
Console.WriteLine("*Console Based Rest HOST*");
using (WebServiceHost serviceHost = new WebServiceHost(typeof(ServiceForILobby)))
{
serviceHost.Open();
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
/*这是客户*/
using (ChannelFactory<IServiceForILobby> cf = new ChannelFactory<IServiceForILobby>(new WebHttpBinding(), "http://192.168.1.103:50000/RestService/SendXml?response={x}"))
{
cf.Endpoint.EndpointBehaviors.Add(new WebHttpBehavior());
IServiceForILobby channel = cf.CreateChannel();
string s;
// s = channel.SendXml("http://192.168.1.103:50000/RestService/SendXml?response={x}");
string a;
using (StreamReader sr = new StreamReader("simplexml.txt"))
{
string xmlCode = sr.ReadToEnd();
s = channel.SendXml(xmlCode);
}
Run Code Online (Sandbox Code Playgroud)
我想将XML从客户端发送到主机,然后像这样解析它如何解析XML文件?