首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XSockets.NET longrunning控制器中使用参数

在XSockets.NET longrunning控制器中使用参数
EN

Stack Overflow用户
提问于 2013-12-11 00:47:54
回答 1查看 229关注 0票数 0

对于数据库查询的过滤条件,在长时间运行的控制器中必须有参数。可以将QueryString参数传递给自定义控制器,但我还没有找到一种方法来实现长时间运行的控制器。这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-19 06:14:16

嗯..。不可能将参数传递给远程运行控制器。我要做的是使用querysting设置属性,或者将它们作为查询中的参数传递给您的CustomController。由于在长期运行中存在该定制控制器的一个实例,因此您可以进行过滤,也可以只调用某个方法(如此处所示的http://xsockets.net/docs/c-server-api#longrunning-internal-controllers )。

您也可以这样做

代码语言:javascript
复制
using System;
using System.Timers;
using Microsoft.Ajax.Utilities;
using XSockets.Core.Common.Globals;
using XSockets.Core.Common.Socket;
using XSockets.Core.XSocket;
using XSockets.Core.XSocket.Helpers;
using XSockets.Plugin.Framework;

namespace MyWeRole.Controllers
{
    [XSocketMetadata("LongrunningController1"
                    , Constants.GenericTextBufferSize
                    , PluginRange.Internal)             ]
    public class LongrunningController1 : XSocketController
    {
        static MyCustomController1 customController1;

        static LongrunningController1()
        {
            //Initialize your long running stuff here  
            customController1 = new MyCustomController1();
            var timer = new System.Timers.Timer();
            timer.Interval = 3000;
            timer.Elapsed += TimerOnElapsed;
            timer.Start();

        }

        private static void TimerOnElapsed(object sender
                                        , ElapsedEventArgs elapsedEventArgs)
        {
            var objectToSend = new {SomeInt = 1, SomeString = "HelloWorld"};

            customController1
                .SendTo( c =>  c.Interest.Equals("Travel")   
                             , objectToSend.AsTextArgs("YourTopic") );

        }
    }

    public class MyCustomController1 : XSocketController
    {
        public string Interest { get; set; }

        public MyCustomController1 ()
        {
            // set the default interset
            this.Interest = "Travel";
        }
    }
}

由于您可以使用JavaScript修改控制器上的属性,因此您可以使用

代码语言:javascript
复制
ws.publish("set_Interest",{value: 'Code'});

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20500283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档