【问题标题】:Can I use socket.io for simple transactions?我可以使用 socket.io 进行简单的交易吗?
【发布时间】:2017-05-23 09:08:51
【问题描述】:

简单的交易意味着在我的网站上我有 8 个 HTML forms 有 10 - 15 个输入字段,一些 forms 也有文件上传选项。

我在客户端使用 Angular js,在服务器端使用 Express js。在 Angular 中,我使用 Angular Resource 进行 HTTP 操作。这很好,现在我想将 socket.io 与 angular js 一起使用,并想用 socket.io 替换 Angular 资源。

我见过一些例子,其中 socket.io 用于即时消息传递或某些特定任务,而不是用于表单数据提交等等。但我的好奇心是每个人都想要速度,如果我使用 socket.io,我可以更快地完成操作。

我的想法是否正确?

谢谢。

【问题讨论】:

  • 你想通过socket.io实现什么?您已经可以使用 Angular 在客户端轻松进行输入验证。我可以想象一些有用的应用程序,您可以通过 socket.io “即时”传输输入并返回输入提示/建议

标签: angularjs http socket.io


【解决方案1】:

我的想法是否正确?

不,不是。

但我的好奇心是每个人都想要速度,如果我使用 socket.io,我可以更快地完成操作。

不清楚为什么您认为 socket.io 会比为表单输入执行 HTTP 发布更快。可能没有明显差异,最终用户肯定不会注意到。如果您在相对较短的时间内从同一个客户端到同一个服务器执行大量此类操作,那么使用 socket.io 连接可能更有意义,只是为了避免在设置每个 http 连接时产生一点开销,但是如果您只从每个客户端执行一些操作,那么这种差异在很大程度上是无关紧要的,并且维护与每个客户端的单独 socket.io 连接的额外开销(即使客户端什么都不做)是相反方向的权衡.

互联网上数以亿计的网站使用 HTTP post 将表单数据发送到他们的服务器。有用。它是相对有效的。 Expressjs 是为轻松处理而构建的。您没有说明为什么应该用其他东西替换它。

您当然可以使用 socket.io 提交表单。使用 socket.io,您只需将表单数据打包到您选择的对象中并发送该对象。 socket.io 会将对象转换为 JSON,发送 JSON,然后服务器中 socket.io 的接收端将自动将 JSON 转换回服务器端 Javascript 对象,您将拥有所有表单数据。因此,它可以与 socket.io 一起正常工作 - 只是不清楚为什么您认为这比向您的 Expressjs 服务器发送 HTTP 帖子更好。

【讨论】:

  • 我认为 Socket.io 会更快(我不确定),因为它基本上用于聊天应用程序,这是更实时的数据。
  • @ArpitMeena - socket.io 用于聊天,因为每当其他人与您聊天时,服务器都需要将数据“推送”到客户端。因此需要一个连续的连接,以便服务器可以随时将数据发送到客户端。出于这个原因使用它,而不是因为性能。您的情况不需要该功能,因此可以正常使用 HTTP。
猜你喜欢
  • 1970-01-01
  • 2022-01-01
  • 2013-03-06
  • 2013-09-15
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多