Ich versuche herauszufinden, was ist falsch mit meinem Code/Einstellungen für eine Weile jetzt.Basisch möchte ich eine Nachricht vom Client an den Server senden . Folgendes funktioniert in allen Browsern außer FF (11) und Chrom (18.0.1025.152 m). HierSocket.io sendet keine Nachrichten an Knoten-Server in Chrome & Firefox
einige Informationen:
- Ich betreibe Node.js auf Windows 7 Enterprise 64-Bit-Maschine
- ich Apache verwenden, um die Seite von localhost
- Ich höre auf Port 8080 zu dienen mit Socket.io
- Es sieht aus wie Chrom und FF Rückfall auf xhr-Polling/JSONP-Polling statt über Sockets
- I Nachrichten vom Server drücken kann, aber ich kann nicht vom Client emittieren 012.351.
Server Code:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello World!</title>
<meta charset="utf-8">
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var socket = io.connect('http://localhost:8080');
$("#button").click(function() {
socket.emit('my event' ,"Hello World!");
})
})
</script>
</head>
<body>
<button type="button" id='button'>Send Message</button>
</body>
</html>
Module Versionen:
var io = require('C:/Users/shlomis/node_modules/socket.io/lib/socket.io').listen(8080);
io.sockets.on('connection', function (socket) {
socket.on('my event', function (msg) {
console.log("DATA!!!");
});
});
ich keine Möglichkeit zu verlangen, ohne einen vollständigen Pfad
Client-Code finden konnte
C:\Users\shlomis>npm ls
[email protected] C:\Users\shlomis
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
└─┬ [email protected]
├── [email protected]
├── [email protected]
└─┬ [email protected]
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
└── [email protected]
Knoten log:
C:\Users\shlomis>node C:\dev\wamp\www\AR\js\videoServer.js
info - socket.io started
debug - served static content /socket.io.js
debug - client authorized
info - handshake authorized 17502185141066845391
debug - setting request GET /socket.io/1/websocket/17502185141066845391
debug - set heartbeat interval for client 17502185141066845391
debug - client authorized for
debug - websocket writing 1::
debug - setting request GET /socket.io/1/xhr-polling/17502185141066845391?t=1334041653716
debug - setting poll timeout
debug - discarding transport
debug - cleared heartbeat interval for client 17502185141066845391
Chrom WS Anfrage (101 Switching Protocols):
Chrom XHR Anfrage:
Update: Iv'e hinzugefügt
socket.on('connect', function() {
console.log("connected");
});
Es feuert nie auf Chrom.
Also was könnte falsch sein? bitte helfen Sie aus :)
Ich habe genau das gleiche Problem ... socket.emit ('Hallo') auf dem Client arbeitet in Safari, aber nicht in Firefox oder Chrome ... Sicherheitsbeschränkung vielleicht? Oder möglicherweise ein socket.io Bug. –
Könnte es sich um die Richtlinie "same-origin" handeln, da der Fehler nur auftritt, wenn XHR verwendet wird? Versuchen Sie, ein einfaches XHR zu localhost zu machen: different-port-than-served-page, sehen Sie, ob Sie irgendwelche Sicherheitsausnahmen bekommen. –
KEINE Sicherheitsprobleme, ich benutze jetzt http://faye.jcoglan.com/node.html (faye) für Sockets über Knoten JS und es funktioniert gut ... sieht aus wie ein socket.io Fehler für mich. –