【问题标题】:How to I start with Web Sockets?如何从 Web Sockets 开始?
【发布时间】:2015-06-24 01:20:26
【问题描述】:

我想在 JavaScript 中使用 Web 套接字创建一个基本的聊天应用程序。我在各种搜索引擎上搜索了很多关于它的内容,但没有找到任何可以帮助我的东西。

我正在使用 Wamp 服务器并且没有安装 NODE.js。

  1. 我可以在 Wamp 上创建应用程序吗?
  2. 如何为 Web Sockets 编写服务器代码?

注意:我知道 Web 套接字的客户端代码,但不知道从哪里开始使用服务器代码? 我需要的代码可以是 PHP 或 JavaScript。 下面是我写的一个基本的客户端代码。

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function WebSocketTest()
{
  if ("WebSocket" in window)
{
  alert("WebSocket is supported by your Browser!");
 // Let us open a web socket
 var ws = new WebSocket("ws://localhost:9998/echo");
 ws.onopen = function()
 {
    // Web Socket is connected, send data using send()
    ws.send("Message to send");
    alert("Message is sent...");
 };
 ws.onmessage = function (evt) 
 { 
    var received_msg = evt.data;
    alert("Message is received...");
 };
 ws.onclose = function()
 { 
    // websocket is closed.
    alert("Connection is closed..."); 
 };
}
else
{
   // The browser doesn't support WebSocket
    alert("WebSocket NOT supported by your Browser!");
}
}
</script>
</head>
<body>
<div id="sse">
   <a href="javascript:WebSocketTest()">Run WebSocket</a>
</div>
</body>
</html>

【问题讨论】:

标签: javascript php node.js sockets


【解决方案1】:

如果您正在研究不需要网络套接字的基本聊天应用程序,AJAX polling 就足够了。

PHP Web 套接字的问题在于,要使用它们,您需要创建自己的 PHP 服务器,该服务器将打开一个套接字并监听它。为此,您需要能够将 PHP 脚本作为 CLI 运行 - 您需要在您的服务器上拥有 shell 访问权限,这在大多数共享托管服务提供商上是不可用的。

【讨论】:

    【解决方案2】:

    sailsjs 是开始使用 WebSockets 构建实时 Web 应用程序的好方法。 Sails 使用 express 和 socket.io 来启用 WebSockets 功能。

    请参阅此 SailsCast 以开始使用:Building a Sails Application: Ep21 - Integrating socket.io and Sails With Custom Controller Actions Using Real Time Model Events.

    【讨论】:

    • 尽管这被标记为node.js,我只是看到你正在使用 Wamp。除了一般来说这是一个可怕的要求之外,sails.js 不会在 php 上运行。
    • 您好,我建议不要使用上述教程...它是为旧版本的 Sails 编写的,视频中描述的命令不适用于当前 Sails 0.11...。可能会给某人带来令人沮丧的体验:-)如果我有时间会尝试为sails编写一个socket io教程,但总的来说它非常简单,请查看这篇文章stackoverflow.com/questions/22454809/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2016-06-20
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2012-09-07
    相关资源
    最近更新 更多