小编ras*_*ing的帖子

使用Node.js和mongodb处理超时

我目前正在测试一些代码如何抵制以下场景:

  • 启动Node.js应用程序并成功建立与mongodb的连接
  • 成功建立连接后,mongodb服务器将死亡,所有后续请求都将失败

要做到这一点,我有以下代码,使用官方驱动程序(在这里找到:https://github.com/mongodb/node-mongodb-native):

MongoClient.connect('mongodb://localhost:27017/testdb', function(err, db) {
app.get('/test', function(req, res) {
    db.collection('users', function (err, collection) {
        console.log(err);
        if (err) {
            // ## POINT 1 ##
            // Handle the error
        }
        else {
            collection.find({ 'username': username }, { timeout: true }).toArray(function(err, items) {
                console.log(err);
                if (err) {
                    // ## POINT 2 ##
                    // Handle the error
                }
                else {
                    if (items.length > 0) {
                        // Do some stuff with the document that was found
                    }
                    else …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling timeout mongodb node.js

18
推荐指数
1
解决办法
1万
查看次数

JavaScript不在.NET WebBrowser控件中执行

我的两个朋友已经测试了我一直在研究的项目,该项目依赖于WebBrowser控件的使用,并且设法遇到WebBrowser控件无法在包含的网页上执行任何JavaScript的常量场景.

为了缩小范围,我创建了一个仅包含WebBrowser控件的新Windows窗体项目,并尝试导航到以下页面:http://javatester.org/javascript.html

朋友电脑上的结果如下(点击放大):

控制渲染

正如您所看到的,在尝试调用JS特定代码时,它不会呈现任何内容,或者如果您在禁用或启用了JS的Web浏览器中查看它,您将会看到一些内容.

他导出了包含启用JavaScript设置的注册表项(请参阅https://gist.github.com/4699943),每个键中1400的值与我使用的相同设置匹配,当我运行程序时我没有问题.

整个测试项目的代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            this.webBrowser1.Navigate("http://javatester.org/javascript.html");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果使用此代码创建一个新项目,该代码面向4.5框架(在我的机器上或他的机器上),它可以工作,但是如果使用4.0或更低版本创建一个,则会出现上述结果.我不确定这是巧合,还是确实与问题/解决方案有关.

应该注意的是,如果他在Internet Explorer中导航到此页面没有问题,它会检测到JavaScript已启用,此问题仅存在于此测试应用程序及其所属的主项目中.

任何帮助将不胜感激,我花了两个月的时间试图解决这个问题,但仍然不能.

.net javascript c# webbrowser-control

10
推荐指数
1
解决办法
1万
查看次数

在XNA应用程序中移动单个sprite时出现断断续续的情况

更新:我上传了一个显示口吃的视频:http://intninety.co.uk/xnastutter.mp4如果你没有在1920x1080观看它,你可能需要仔细查看视频,但你会看到那里我每隔2秒左右移动一次是一个相当明显的口吃,我建议在Windows Media Player而不是你的网络浏览器中查看它,以确保视频本身没有波动,从而阻止你看到实际的口吃

我最近刚开始接受一个我刚刚开始的项目,但是我仍然在努力解决我留下的问题!

目前我有一个非常简单的应用程序,它只在屏幕上有一个精灵,并使用方向键移动.问题是每两秒左右,游戏口吃,精灵似乎向后跳,然后很快回来.

精灵本身是一个55x33位图,所以没有任何大的,并且使用的代码如下.希望这足以让人们了解可能出现问题的一些想法,如果要求视频确切地看到口吃的样子我可以把它放在一起并在需要时将其上传到某个地方.

正如你在代码中看到的那样,它确实可以弥补帧之间的时间损失,如果它发生了更大的移动,那么这种下降在时间上非常一致地发生,这让我相信我在某处做错了.

我已经尝试了几台不同的机器,但问题仍然存在于所有这些机器上,如果有人有任何想法或者可以看到它在哪里我搞砸了它会非常感激,如果你能指出它.

谢谢 :)

游戏的构造器设置图形设备管理器

graphics = new GraphicsDeviceManager(this);
graphics.IsFullScreen = true;
graphics.SynchronizeWithVerticalRetrace = false;
graphics.PreferredBackBufferWidth = 1920;
graphics.PreferredBackBufferHeight = 1080;
Content.RootDirectory = "Content";
this.IsFixedTimeStep = false;
Run Code Online (Sandbox Code Playgroud)

游戏更新方法中的代码

KeyboardState keyboard = Keyboard.GetState();
GamePadState gamePad = GamePad.GetState(PlayerIndex.One);

if (keyboard.IsKeyDown(Keys.Escape)) {
    this.Exit();
}

if ((keyboard.IsKeyDown(Keys.Left)) || (gamePad.DPad.Left == ButtonState.Pressed))
{
    this.player.MoveLeft((float)gameTime.ElapsedGameTime.TotalMilliseconds); 
} else if ((keyboard.IsKeyDown(Keys.Right)) || (gamePad.DPad.Right == ButtonState.Pressed))
{
    this.player.MoveRight((float)gameTime.ElapsedGameTime.TotalMilliseconds);
}

if ((keyboard.IsKeyDown(Keys.Up)) || (gamePad.DPad.Up == ButtonState.Pressed))
{
    this.player.MoveUp((float)gameTime.ElapsedGameTime.TotalMilliseconds); …
Run Code Online (Sandbox Code Playgroud)

c# xna sprite

6
推荐指数
1
解决办法
3107
查看次数

两个唯一的命名管道冲突和InvalidCredentialException

我昨晚遇到了两个问题,我现在已经解决了,但我不能100%确定为什么我所做的已经解决了这些问题,希望也许有人可以提供一些见解,因为我已经翻了很多岩石,没有运气!

第一个问题

第一个问题是我在两个独立的程序中有两个唯一命名的管道:

  • net.pipe://本地主机/ superuniquepipe1
  • net.pipe://本地主机/ superuniquepipe2

但是,由于已经在使用的地址,第二个启动的程序在打开ServiceHost时会抛出一个异常(我相信它是AddressAlreadyInUseException).

我的方式实例化这些ServiceHosts如下:

Uri[] baseAddresses = new Uri[] { new Uri("net.pipe://localhost") };
this.host = new ServiceHost(this, baseAddresses);
this.host.AddServiceEndpoint(typeof(IHostType), new NetNamedPipeBinding(), "superuniquepipe1");
this.host.Open();
Run Code Online (Sandbox Code Playgroud)

所以我首先指定localhost的基地址,然后在添加端点时指定其余部分,我解决这个问题的方法是更改​​代码,如下所示:

this.host = new ServiceHost(this);
this.host.AddServiceEndpoint(typeof(IHostType), new NetNamedPipeBinding(), "net.pipe://localhost/superuniquepipe2");
this.host.Open();
Run Code Online (Sandbox Code Playgroud)

我是否正确说这个有效的原因是因为它只检查基地址而不是我试图添加的端点?并使用第二个代码示例一个有效/安全的方式让多个程序监听"localhost"?

第二个问题:

为了解决上述问题,我将基本地址从localhost更改为许多不同的唯一字符串,例如"net.pipe:// rawrwhyisntthisworkingsadface",但是在执行此操作时,我将从客户端尝试使用InvalidCredentialException建立连接(见下面的代码)

我的印象是命名管道可以命名为任何东西,任何人都可以对这一个有所了解吗?

ChannelFactory<IHostType> factory = new ChannelFactory<IHostType>(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://rawrwhyisntthisworkingsadface/superuniquepipe2"));
IHostType proxy = factory.CreateChannel();
proxy.CallSomeMethodAndGetAnException();
Run Code Online (Sandbox Code Playgroud)

任何输入都会非常感激,因为我说我已经解决了这个问题并且只是想知道为什么我的解决方案有效,但是如果你看到我如何解决它的一个缺陷并且可以提出一个更好的方法,请这样做:)

c# wcf remoting named-pipes

6
推荐指数
1
解决办法
4307
查看次数

在酶测试中更改MemoryRouter中的路由路径

我正在尝试通过在Enzyme中创建一个包装程序(将我的组件放置在MemoryRouter;中)来测试侦听更改历史的组件。即:

mount(
  <MemoryRouter initialEntries={'/path/param1}>
    <Switch>
      <Route
        path="/path"
        component={MyComponent}
      />
  </Switch>
</MemoryRouter>
)
Run Code Online (Sandbox Code Playgroud)

对于初始路径,这可以正常工作,但是,我特别想测试从说起开始会发生什么,/path/param1然后将历史记录更改为/path/param2

通过使用包裹组件的导出来完成路径的监控withRouter,如下所示:

export default withRouter(MyComponent)
Run Code Online (Sandbox Code Playgroud)

然后在构建时,我习惯于history.listen订阅历史更改。

reactjs enzyme

5
推荐指数
1
解决办法
745
查看次数

易趣API呼叫限制

我正在为一位朋友制定计划,允许他在他的eBay账户上发布和修改列表,在审查必要的文件时,我发现了限制方面的冲突.

此页面表明每个API每天限制为5,000次:https://go.developer.ebay.com/developers/ebay/ebay-api-call-limits

但是,此页面指定添加列表和修订列表调用每天最多可以有350万个调用:http://developer.ebay.com/devzone/xml/docs/reference/ebay/ReviseItem.html

任何人都可以告诉我这些限制是什么,或者这些Add和Revise Listing调用是否对第一个URL中定义的其他API调用没有贡献?

limit ebay-api

4
推荐指数
1
解决办法
4824
查看次数