小编Dou*_*kem的帖子

Flash/Flex中的UDP实时游戏可用开源RTMFP实现

是否有任何使用Flash 10 beta RTMFP UDP协议构建实时Flash游戏的示例.到目前为止,RTMFP示例似乎专注于闪存客户端之间的P2P网络,任何人都知道RTMFP上基于传统客户端/服务器UDP的通信的任何示例.

有谁知道RTMFP能够进行NAT防火墙穿越以允许客户"托管"实时游戏.想象一下,能够通过Flash客户端通过网络执行XBox实时匹配,并允许客户端通过Web浏览器托管基于Flash的实时"使命召唤"游戏服务器.

听起来Adobe的测试版Stratus项目为P2P实时通信提供了"再现"服务.我相信通过协调P2P"rendevous"与中央服务器来实现NAT导航以解决防火墙问题.

此外,Adobe Labs还有另一款名为Live Cycle Collaboration Service的产品:

试试RTMFP和ClientToClient:

使用RTMFP时有几个非常有趣的问题.首先,基于UDP意味着很多防火墙都不允许它.尝试连接并失败是很常见的.Cocomo通过使用几种协议同时尝试几个连接来解决这个问题.无论哪个成功都赢得了作为会话连接的奖励.

LCCS听起来像是一个"更全面"的解决方案,用于提供P2P游戏,以及标准的客户端/服务器UDP或TCP游戏.如果失败,它会尝试P2P UDP,它可以回退到客户端/专用服务器TCP或UDP通信.看起来这将是游戏服务提供商希望能够自己管理的东西("云"LCCS和Stratus服务不能为游戏服务器的"服务器端"提供足够的控制),有没有在相当于这些"rendevous"NAT穿透和TCP回退服务的开源上工作?

任何人都知道任何支持RTMFP(或任何其他Flash 10 beta UDP协议)的开源项目?有没有使用RTMFP的实时游戏示例?

networking actionscript udp amf

15
推荐指数
1
解决办法
8100
查看次数

配置Java FileHandler日志记录以创建不存在的目录

我正在尝试配置Java Logging API的FileHandler以将我的服务器记录到我的主目录中的文件夹中的文件,但我不想在它运行的每台机器上创建这些目录.

例如,在logging.properties文件中,我指定:

java.util.logging.FileHandler
java.util.logging.FileHandler.pattern=%h/app-logs/MyApplication/MyApplication_%u-%g.log
Run Code Online (Sandbox Code Playgroud)

这将允许我收集MyApplication的主目录(%h)中的日志,并将它们旋转(使用%u和%g变量).

当我在log4j.properties中指定时,Log4j支持这个:

log4j.appender.rolling.File=${user.home}/app-logs/MyApplication-log4j/MyApplication.log
Run Code Online (Sandbox Code Playgroud)

看起来Logging FileHandler存在一个错误: 错误6244047:除非它们存在,否则无法指定driectorys来记录FileHandler

听起来他们不打算修复它或暴露任何属性来解决问题(除了让你的应用程序解析logging.properties或硬编码所需的路径):

看起来java.util.logging.FileHandler似乎不期望指定的目录可能不存在.通常,无论如何都必须检查这种情况.此外,它还必须检查目录写入权限.另一个问题是,如果其中一项检查未通过,该怎么办.

一种可能性是,如果用户具有适当的权限,则在路径中创建缺少的目录.另一种方法是抛出一个带有明确错误信息的IOException.后一种方法看起来更加一致.

java logging log4j

14
推荐指数
2
解决办法
4万
查看次数

Facebook iOS SDK和passport-facebook身份验证

我正试图在iOS Facebook SDK应用程序上使用passport-facebook实现服务器facebook身份验证,我不清楚如何在后端设置护照身份验证.

基本上iOS客户端使用Facebook进行身份验证并获取sessionToken,我想将其传递给passport-facebook/auth/facebook/callback以使用FB验证会话令牌,并通过node.js从我们的数据库中查找用户.

这是使用passport-facebook的正确方法,还是需要call/auth/facebook(我需要传递什么参数).

这个问题提到使用Facebook iOS SDK构建应用程序,然后在服务器上进行身份验证,但没有提到具体如何做到这一点.

https://github.com/jaredhanson/passport-facebook/issues/7

我还可以编写自己的自定义护照策略,简单地传递FB会话令牌,我可以验证服务器上的FB图形API以获取FB用户ID并验证它是有效会话,如下所述: 设计用于Facebook身份验证也可以访问安全Web服务的iOS应用程序

facebook node.js ios passport.js

13
推荐指数
1
解决办法
4158
查看次数

Objective-C对通用NSCoding实现的反思

Objective-C中是否存在任何反射方法,允许您通过检查对象的公共属性并生成encodeWithCoder:和initWithCoder的通用实现来编写通用NSCoding实现:.

我正在考虑像XStream for Java这样的东西,它允许使用反射对Java对象进行序列化和反序列化的通用方法.更好的方法可能是将属性标记为您想要序列化的东西或者是瞬态的(比如Java中的transient关键字).

我一直在阅读有关Cocoa的Archives and Serializations Programming Guide的文档.我知道您希望对对象的序列化进行一些控制,但它通常是一个对称的过程,并且必须反转为序列化编码的内容以反序列化它似乎很奇怪.我是DRY的信徒(不要重复自己).

iphone reflection serialization objective-c objective-c-runtime

12
推荐指数
2
解决办法
4226
查看次数

可用的游戏网络协议定义语言和代码生成

我一直在寻找一个好的通用二进制网络协议定义框架,以提供一种以多种语言编写实时游戏服务器和客户端(想想魔兽世界或Quake III)的方法(例如Java后端服务器和iPhone前端用Objective-C和Cocoa编写的客户端).

我想支持Windows上的Java Flash客户端,iPhone客户端和C#客户端(以及XBOX上的XNA客户端).

我正在寻找一种通过TCP/IP或UDP套接字流连接有效发送/接收消息的方法.我不是在寻找可以通过HTTP Web服务发送的东西,比如JSON或XML编组的对象.虽然Hessian的二进制Web服务协议是一个非常有趣的解决方案

我想要一种网络协议格式和客户端/服务器基本实现,它允许客户端连接到服务器并以定义的协议发送任何消息,并接收协议中的任何消息,而不必绑定到某种RPC端点.我希望我的协议传入和传出的任何消息的通用流.这样我就可以支持诸如服务器每隔100毫秒向所有客户端发送游戏中各种实体的位置.

xna real-time network-protocols protocol-buffers

11
推荐指数
1
解决办法
5477
查看次数

Hibernate映射子类中的第二个@Embeddable字段

我正在尝试在子类中映射@Embeddable对象,其父类已经具有@Embeddable类型的字段.

hibernate Embeddable Objects文档声称我可以使用@AttributeOverrides来覆盖@Embeddable对象的列名:

例如

@Entity
public class Person implements Serializable {

    // Persistent component using defaults
    Address homeAddress;

    @Embedded
    @AttributeOverrides( {
            @AttributeOverride(name="iso2", column = @Column(name="bornIso2") ),
            @AttributeOverride(name="name", column = @Column(name="bornCountryName") )
    } )
    Country bornIn;
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是我的情况:

 @Embeddable
    public class ContentID implements Serializable {
        @Column(name="contentID")
        private String contentPath;
    }

   @MappedSuperclass
   public abstract class BaseDomainObject implements Serializable  {

       @Embedded
       private ContentID contentID;
    }

public class Achievement extends BaseDomainObject {

    @Embedded
    @AttributeOverrides( {
        @AttributeOverride(name="contentID", column = @Column(name="awardedItem") ),
    } …
Run Code Online (Sandbox Code Playgroud)

java database orm annotations hibernate

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

使用空格将参数传递给Bash脚本中的命令

我试图将2个参数传递给一个命令,每个参数都包含空格,我已经尝试转义args中的空格,我尝试用单引号括起来,我试过逃避\"但没有什么可行的.

这是一个简单的例子.

#!/bin/bash -xv

ARG="/tmp/a b/1.txt"
ARG2="/tmp/a b/2.txt"

ARG_BOTH="\"$ARG\" \"$ARG2\""
cat $ARG_BOTH
Run Code Online (Sandbox Code Playgroud)

它运行时我得到以下内容:

ARG_BOTH="$ARG $ARG2"
+ ARG_BOTH='/tmp/a\ b/1.txt /tmp/a\ b/2.txt'
cat $ARG_BOTH
+ cat '/tmp/a\' b/1.txt '/tmp/a\' b/2.txt
cat: /tmp/a\: No such file or directory
cat: b/1.txt: No such file or directory
cat: /tmp/a\: No such file or directory
cat: b/2.txt: No such file or directory
Run Code Online (Sandbox Code Playgroud)

unix bash shell scripting escaping

11
推荐指数
3
解决办法
2万
查看次数

使用svn.pushmergeinfo进行合并的git-svn工作流程

使用git-svn合并svn跟踪分支的正确工作流程是什么.我已经阅读了一些关于git-svn svn.pushmergeinfo配置密钥的内容,注意事项是:

来自http://www.kernel.org/pub/software/scm/git/docs/git-svn.html:

config key:svn.pushmergeinfo

此选项将导致git-svn尝试在可能的情况下自动填充SVN存储库中的svn:mergeinfo属性.目前,这只能在提交非快进合并时才能完成,其中除第一个之外的所有父级已经被推入SVN.

所以我的正常工作流程是:

假设我有一个SVN分支^/branches/feature_branch

# Ensure git-svn is configured to populate svn:mergeinfo
git config --global svn.pushmergeinfo true   

# Update my local svn remotes state
git svn fetch

# Track a local branch against a remote SVN backed ^/branches/feature_branch 
git checkout -b local_feature_branch remotes/feature_branch

# Modify files and commit to local git repo
git commit -a -m "changes"
# Push changes to SVN branch ^/branches/feature_branch
git svn dcommit
Run Code Online (Sandbox Code Playgroud)

然后将^/trunk合并到我的local_feature_branch我假设我做了类似的事情?

# Sync to the latest SVN …
Run Code Online (Sandbox Code Playgroud)

svn git merge git-svn mergeinfo

11
推荐指数
1
解决办法
2633
查看次数

ANT如何递归删除只有空目录

有谁知道如何用ANT递归删除"空"目录(空包括仅包含".svn"等的目录).

我知道ant允许你"includeEmptyDirs = true"但我希望它只删除一个目录,如果它是空的(实际上我可能需要走上递归链并删除它所包含的目录,如果它现在是空).

基本上作为构建过程的一部分,我们复制一组目录,其中包含一堆包含各种XML和数据的其他嵌套目录,当我们移动该数据的位置时,我们的"复制"和签入构建过程并不真正有效,因为我们正在检查另一个源控件(SVN),擦除目录并复制也不是一个选项(我们要吹掉".svn"文件夹).

在我们复制新版本之前,我可以通过执行以下操作"清除"目录:

<delete>
  <fileset dir="${webplatformBin}" includes="**/*"/>
</delete>
Run Code Online (Sandbox Code Playgroud)

这会将每个目录(带有".svn")留作空目录,然后复制新文件.复制之后,我不确定如何清除剩下的空目录(如果我们已完全移动到顶级数据目录所在的位置等).

例如,如果我有/projectA/data/localization/text.xml文件并将其移动到/projectB/data/localization/text.xml,我最终会得到一个空的文件夹/ p​​rojectA/data/localization /(只包含.svn文件夹).

ant build-process

10
推荐指数
2
解决办法
8310
查看次数

Shell脚本检测在Cygwin中运行

有没有一种简单的方法可以检查脚本是否在Cygwin中运行.我们有一个脚本调用一个实用程序,它希望传递的路径是windows,所以如果我们在Cygwin中,我们必须将路径转换为windows路径.

unix windows bash shell cygwin

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