套接字或Ajax。我该怎么用?

时间:2013-02-12 10:02:23

标签: javascript jquery node.js socket.io

我想要什么

我想使用Nodejs创建一个登录脚本。目前我正在考虑使用套接字或ajax帖子。

我拥有什么

我已经安装了Nodejs,并使用了this code

我尝试了什么

我从简单的Ajax帖子开始。我为此使用了jQuery,并将表单序列化。这有效,但有时它有一些延迟或很慢。

所以我想也许套接字是与服务器通信并返回客户端的更好方式。

现在我遇到了我不能再使用serialize()的问题了(该死的我喜欢serialize()功能)。

所以现在我必须在我的客户端使用json,获取2个输入值(电子邮件和密码),创建一个名为obj的对象,添加值并使用socket.emit('login', JSON.stringify(obj, null, 2))

在我的服务器中我有

socket.on('login', function(data){
   data = JSON.parse(data)
   if(data.email === 'em@il.com' && data.password === 'secret')
        // return true
   // return false
})

现在问题是我无法让我的客户知道凭证是否正确。

我可以通过使用另一个emit来做到这一点,但我认为这会超载。

我不能只使用return truesocket.send(true)吗?

有人有同样的问题吗?或者也许解决我的问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

嗯,伙计,它闻起来不会是你从客户那里打来的唯一功能。所以你应该开始设计你的API。

如果您从客户端发送JSON,那么从服务器做的最值得尊敬的事情就是返回JSON。我会使用socket.send。

基本的OK响应如下所示:

{ "Status" : true }

基本错误响应如下所示:

{ "Status" : false, "Message": "Login or password not valid" }

如果您将来需要将数据返回给客户端,则可能会使用相同的基本实体,您只需要为其添加更多属性并在客户端中读取它。

{ "Status" : true, Data: { /* data here */ } }