【问题标题】:Why is my websocket server not serving my HTML page correctly?为什么我的 websocket 服务器不能正确地为我的 HTML 页面提供服务?
【发布时间】:2017-03-17 07:16:26
【问题描述】:

我在名为 app.js 的文件中使用 NodeJS 创建了一个 Web 套接字实例,并在端口 8080 上声明了一个侦听器。但是,当我运行命令启动连接时 - 连接没有建立,也没有登录到控制台。我正在尝试打开一个 Web 套接字连接并创建一个通话服务器。当我运行我的 app.js-createServer() 函数不会触发并且“新连接”没有被记录。为了打开连接,我需要更多参数吗?我是 websockets 的新手;任何帮助表示赞赏。

这是我的 app.js 代码:

var ws = require("nodejs-websocket")
console.log("testing")

var server = ws.createServer(function (conn) {
    console.log("New connection")
    conn.on("text", function (str) {
        console.log("Received "+str)
        conn.sendText(str.toUpperCase()+"!!!")
    })
    conn.on("close", function (code, reason) {
        console.log("Connection closed")
    })
}).listen(8080);    

这是我尝试连接到客户端站点中的 websocket 的地方。我想发送任何输入到文本框中的 websocket,然后在输入标签中记录返回字符串。

<html>
<body>

<p>
Result: <output type=text id="result0" value="" readonly></output>
</p>

<input type="text" onchange="connection.send(this.value); " />

<script>
    var connection = new WebSocket("ws://localhost:8080/echo");
    connection.onmessage = function (event){
    document.getElementById("result0").value = event.data;
    };
</script>
</body>
</html>

【问题讨论】:

    标签: node.js html websocket server


    【解决方案1】:

    它工作正常......只需在终端 A 中执行您的服务器

    npm install -g nodejs-websocket  # if not installed 
    node my_websocket.js
    

    然后将您的客户端保存为文件 browser_client.html 然后在同一个目录中发出这个以在新终端 B 中启动 httpd 服务器

    npm install -g http-server # install an httpd server to render html file
    http-server -c-1 -p 8888   # this launches the httpd
    

    然后打开浏览器并指向链接

    http://localhost:8888/browser_client.html
    

    你会在终端 A 的输出中看到

    New connection
    

    然后在浏览器的文本框中输入一些文本

    apples and oranges
    

    会在终端 A 和浏览器中显示

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2015-10-01
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      相关资源
      最近更新 更多