为什么我的websocket服务器无法正确提供我的HTML页面?

时间:2017-03-16 23:03:27

标签: node.js html5 websocket server

我在名为app.js的文件中使用NodeJS创建了一个Web套接字实例,并在端口8080上声明了一个侦听器。但是,当我运行命令启动连接时 - 连接未建立且不是登录到控制台。我正在尝试打开W​​eb套接字连接并创建一个会话服务器。当我运行我的app.js-时,createServer()函数不会触发和#34;新连接"没有被记录。是否有更多参数可用于打开连接?我是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>

1 个答案:

答案 0 :(得分:1)

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

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

然后将您的客户端保存为文件browser_client.html 然后在同一个dir内发布这个以在新终端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中以及浏览器中显示