我在尝试使用websockets时遇到了麻烦,因此我制作了一个玩具回送服务器,并尝试从浏览器控制台直接向其发送请求。我可以从浏览器向服务器发送消息,服务器正在接收它,但它不会发回回信号。这是我作为一个小测试运行的服务器代码和浏览器控制台代码:
server.js
var WebSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer(function(request, response) {
console.log((new Date()) + ' Received request for ' + request.url);
response.writeHead(404);
response.end();
});
server.listen(8080, function() {
console.log((new Date()) + ' Server is listening on port 8080');
});
wsServer = new WebSocketServer({
httpServer: server
});
wsServer.on('request', function(request) {
var connection = request.accept('echo-protocol', request.origin);
console.log((new Date()) + ' Connection accepted.');
connection.on('message', function(message) {
console.log('Received Message: ' + message.utf8Data);
connection.sendUTF("message test");
});
connection.on('close', function(reasonCode, description) {
console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
});
});
firefox控制台输入:
var connection = new WebSocket('ws://localhost:8080', 'echo-protocol');
// undefined
// GET http://localhost:8080/
connection.onmessage = function(mess) {console.log(mess.data);};
// function connection.onmessage()
connection.send("hello");
// undefined
命令提示输入和输出:
> node server.js
Fri Oct 09 2015 22:57:18 GMT-0700 (Pacific Daylight Time) Server is listening on port 8080
Fri Oct 09 2015 22:57:21 GMT-0700 (Pacific Daylight Time) Connection accepted.
Received Message: hello
我在制作玩具服务器之前做了npm install websocket
,所以如果问题出在我正在使用的websocket库中,那就是那个
我的服务器显然至少到了第22行,因为它打印出从浏览器发送给它的消息,但是当消息被认为是在sendUTF函数的下一行发回时,浏览器控制台没有显示任何响应。 / p>
我做错了吗?我的浏览器是否默默地放弃了响应?
答案 0 :(得分:0)
我真的希望这很容易(为了你)...
在Firefox浏览器控制台中,在" Logging"下拉,点击"记录"。您的确切代码似乎在我的Firefox机器上失败,但它在Chrome中有效。然后我在Firefox控制台中找到了这个选项,我看到了你的message test
输出。