我在名为app.js的文件中使用NodeJS创建了一个Web套接字实例,并在端口8080上声明了一个侦听器。但是,当我运行命令启动连接时 - 连接未建立且不是登录到控制台。我正在尝试打开Web套接字连接并创建一个会话服务器。当我运行我的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>
答案 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中以及浏览器中显示