我一直在互联网上寻找直接的答案,但大多数解决方案都涉及使用Express并提供HTTP内容以实现安全连接.我对Node.js和socket.io 的安全Web套接字连接(wss)更感兴趣
我没有将Node.js用于HTTP请求.我使用与Node.js一起使用的socket.io模块将消息实时传递给我的应用程序.我只使用节点进行Web套接字连接.
我会简单解释一下我的设置是什么.我使用Django作为我的HTTP后端.用户向Django发出请求,Django将该请求的内容转发给Redis,Node.js在Redis的一个频道上侦听,它处理内容并将消息发送给适当的收件人.
非常简单直接.一切正常.但我担心与Node.js的websocket连接是不安全的.当Node.js向收件人发送消息时,我不希望任何人在其间窥探并拦截该消息.我想确保我的用户感到安全并相信我为他们建立的服务.
我查看了CA的自签名证书和证书.两者都提供相同级别的安全性.由于我只使用Node.js作为socket.io并且不提供HTTP内容,因此自签名证书可以正常工作(我构建的服务是针对移动设备的,而不是针对浏览器的!)
下面是我对socket.io的实现:
var io = require('socket.io').listen(8000);
var redis = require('socket.io/node_modules/redis')
var redisChannelConnection = redis.createClient(6000, "12.345.678.9");
var redisServer = redis.createClient(6000, "23.456.789.1");
// Subscribe to Redis Channel
redisChannelConnection.subscribe('messages');
io.sockets.on('connection', function (socket) {
     socket.emit('message', 'Hello World');
     }
Run Code Online (Sandbox Code Playgroud)
到目前为止,我刚刚编写了一个简单的连接函数.它可以作为普通的websocket连接.但我想使它成为一个安全的websocket连接.我有多少这样做?
谢谢您的帮助.
我想知道你在Yahoo Weather App中看到的这种滚动的Android实现是什么.这是一个视频示例:
http://www.youtube.com/watch?v=a-q_yetkpik
任何关于如何实现这一点的例子或想法都会真诚地帮助这个可怜的迷失灵魂!
谢谢
我是Django&Tastypie的新手.我想只返回查询中的一个对象.我几乎尝试了一切,似乎无法找到解决方案.这是我的代码如下:
class ProfileResource(ModelResource):
     person = fields.ForeignKey(UserResource, 'user', full=True)
class Meta:
    queryset = Person.objects.all()
    resource_name = 'profile'
    authentication = BasicAuthentication()
    authorization = DjangoAuthorization()
    serializer = Serializer(formats=['json'])
Run Code Online (Sandbox Code Playgroud)
现在我遇到问题的部分是如何使用单个资源返回单个用户对象request.user.
我使用Django和Gunicorn为我的前端iOS应用程序提供支持.到目前为止,我一直在使用简单的GET,PUT,POST请求从我的iOS应用程序向我的Django服务器发送和接收json数据,反之亦然.
这个设置一直很稳固,但我希望实现实时消息传递.当我刚开始时,我使用APNS(Apple的推送通知服务)向收件人实时传递消息.这是我过去做的一个例子:
如果UserA向UserB发送消息,我会通过JSON将消息发送到Django Server,在Django视图中处理它,使用pyAPNS - 一个用于APNS的python包装器,它会向UserB(接收者)发送推送通知以及有效负载大小256个字节.这很好用,但它也有一些缺点.
如果收件人选择禁用推送通知,则他们将不会收到该消息.在iOS应用程序中实现核心数据时,如果缓存对象,这可能会非常混乱.
所以这给我留下了另一种选择.构建基于套接字的东西,可以使用Django并将有效负载作为JSON发送.有任何想法吗?
我是iOS开发人员,我的后端都是用Django编写的.我使用gunicorn作为我的HTTP服务器.我有三个工人在一个小EC2实例上运行.
我的iOS应用不需要任何图像或静态内容.最多,我每次请求一次发送1-20个JSON对象.每个JSON对象最多包含5-10个字段.
我对NGINX很新.我听说它可以做代理缓冲.我想为慢速客户端添加代理缓冲,但我不知道用于以下模块的适当特定设置:
proxy_buffers
Syntax:     proxy_buffers number size
Default:    8 4k|8k
Context:    http server location
Reference:  proxy_buffers
proxy_busy_buffers_size
Syntax:     proxy_busy_buffers_size size
Default:    8k|16k
Context:    http server location
Reference:  proxy_busy_buffers_size
proxy_buffer_size
Syntax:     proxy_buffer_size size
Default:    4k|8k
Context:    http server location
Reference:  proxy_buffer_size
Run Code Online (Sandbox Code Playgroud)
我知道如何使用的唯一设置(非常悲伤)如下所示:
proxy_buffering
Syntax:     proxy_buffering on | off
Default:    on
Context:    http server location
Reference:  proxy_buffering
Run Code Online (Sandbox Code Playgroud)
这种失落的灵魂将非常感谢您在这方面的专业知识!
目前,我使用Google Chrome 的REST 控制台扩展 来查看 JSON 响应。我真的很喜欢这个客户端,因为它允许我发送经过身份验证的请求,否则这些请求将不适用于匿名请求。
我可以使用类似的工具来对服务器的性能进行基准测试吗?
例如返回平均响应时间、压力下的响应时间(1000 个请求/秒)。
我可以使用哪些工具来为我提供 REST API 服务的信息?我研究过 Jmeter,但我认为没有适用于它的 Chrome 插件。我正在寻找一个开放式的答案。
我正在用户上传图片时动态调整图像大小.原始图片存储在名为djangobucket的存储桶中的Amazon S3上.在这个桶里面,包含数千个文件夹.
每个文件夹都以用户命名.我不必担心存储桶创建或文件夹创建,因为所有这些都是从客户端处理的.
这是一个图表:
djangobucket  ------------> bob ---------> picture1.jpg
                                           picture2.jpg
                                           picture3.jpg
                                           picture4.jpg
Run Code Online (Sandbox Code Playgroud)
如你所见,鲍勃有很多照片.一旦用户将图片上传到S3,我就通过URL通过Django下载,在这种情况下,它将是:http://s3.amazonaws.com/djangobucket/bob/picture1.jpg
我下载图像并执行图像处理并将处理后的图像保存在我的django应用服务器上.
我想将此处理后的图像发回bob的文件夹,以便可以在http://s3.amazonaws.com/djangobucket/bob/picture1_processed.jpg上公开访问.
客户端已经可以访问亚马逊密钥和密钥,以便他或她可以将图片上传到此存储桶.该服务上的所有用户都使用相同的密钥.我也将使用相同的密钥.
我听说过一种名为Boto的东西,但它涉及Bucket创建,我不确定如何只做上传部分.我只关心将图片上传到相应的用户文件夹.
我已经研究了几个小时,所以我转向这里的专家.
这是我的代码,只是为了让您更好地了解我正在做的事情.
user = 'bob'
url = 'http://s3.amazonaws.com/djangobucket/bob/picture1.jpg'
filename = url.split('/')[-1].split('.')[0]
download_photo = urllib.urlretrieve(url, "/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (filename))
downloaded_photo = Image.open("/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (filename))
resized_photo = downloaded_photo.resize((300, 300), Image.ANTIALIAS)
new_filename = filename + "_processed"
resized_photo.save("/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (new_filename)) 
Run Code Online (Sandbox Code Playgroud)
我想将保存在/ home/ubuntu/Desktop/Resized_Images /中的已调整大小的照片发送到Amazon S3上的djangobucket中的Bob的文件夹,并将其公开显示.
谢谢你的帮助.
编辑 我发现此链接:http://www.laurentluce.com/posts/upload-and-download-files-tofrom-amazon-s3-using-pythondjango/
我的情况并不完全如何使用它,但我认为我走在正确的轨道上.
关于模型的pk值有多高可以获得最大值吗?例如,对于像活动Feed模型这样的东西,pk可以变得非常大.
例如,"Kyle喜欢这篇文章","Alex评论了这篇文章"等等.你可以看到,对于每个动作,都会创建一个活动供稿对象.是否会达到某种最大阈值?我做了一些研究,但没有找到简明的答案.如果有一些限制,怎么能克服这个?
我目前使用PostgreSQL作为我的数据库.
我试图找出为什么Django(或PostgreSQL,不确定它在哪个级别)不重用已被删除的对象的主键.创建对象时,它们都具有一个自动递增的id值,并按数据库中的id值排序.例如:
ID
五
4
3
2
1
假设我碰巧删除ID为5的对象:
ID
4
3
2
1
当我创建一个新对象时,它的ID为6:
ID
6
4
3
2
1
为什么不将"5"指定为刚创建的新对象的主键?为什么它有6个呢?
Hello StackOverFlowers :)到目前为止我一直在同一个微EC2实例上运行我的Django后端和我的PostgreSQL数据库.
我已经设置了两个EC2实例,一个用我的django后端,另一个用我的PostgreSQL数据库,我使用pgadminII来管理它.两个实例都使用相同的安全组,并打开所有相同的端口.我已将弹性IP附加到我的Django实例,并将另一个弹性IP附加到我的Postgresql实例.
现在我知道在settings.py中我需要将'HOST'更改为PostgreSQL实例的地址.但我不太清楚该放什么.我是否放置了PostgreSQL实例的弹性IP?
我做了一些研究,很多消息来源说我需要输入PostgreSQL实例的内部服务器IP地址.如果是这种情况,我怎样才能找到内部服务器IP地址并将其输入"主机"?为了清楚起见,我复制并粘贴了下面的settings.py代码.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', 
'NAME': 'django_db', 
'USER': 'django_login',
'PASSWORD': 'password', 
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助,如果我不够清楚,请发表评论并告诉我,以便我能为您和其他人更清楚:)
django ×7
amazon-ec2 ×2
postgresql ×2
primary-key ×2
python ×2
sockets ×2
amazon-s3 ×1
android ×1
benchmarking ×1
boto ×1
gunicorn ×1
java ×1
javascript ×1
nginx ×1
node.js ×1
pgadmin ×1
real-time ×1
rest ×1
security ×1
socket.io ×1
tastypie ×1