Im Fall der Entwicklung einer Videochat-App versuche ich socket.io zu verwenden. Um mich dieser Bibliothek vorzustellen, habe ich verschiedene Tutorials verfolgt, ich habe immer das gleiche Problem.Kann Socket.io 2.0.3 nicht verwenden
Jedes Mal, wenn ich versuchen, die Bibliothek zu nennen wie:
var io = require('socket.io')(http);
ich eine Syntax Problem haben wie:
Projects/2017_07_24_firstSocketApp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib/WebSocket.js:140
this._ultron.on('data', (data) => {
^
SyntaxError: missing) after argument list
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:413:25)
at Object.Module._extensions..js (module.js:448:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/Users/sandale/Documents/Projects/2017_07_24_firstSocketApp/node_modules/socket.io/node_modules/engine.io/node_modules/ws/index.js:9:19)
at Module._compile (module.js:430:26)
at Object.Module._extensions..js (module.js:448:10)
C02RN10GG8WN:2017_07_24_firstSocketApp $
So entscheide ich mich wie socket.io 1.7.3 die vorherige Version verwenden Das wirkt wie ein Zauber. Ich möchte nur wissen, ob es ein häufiges Problem ist oder nicht, und ob jemand einen Weg kennt, es zu lösen.
Dank durch Voraus
Hier ist mein Code für dieses Beispiel: index.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
index.html
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font: 13px Helvetica, Arial; }
form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
#messages { list-style-type: none; margin: 0; padding: 0; }
#messages li { padding: 5px 10px; }
#messages li:nth-child(odd) { background: #eee; }
</style>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
</script>
</body>
</html>
Sieht so aus, als ob Sie eine alte Version von Node.js verwenden. Was gibt 'node --version' zurück? – robertklep
Wow, ich war total veraltet. Ich aktualisiere meine Version von 3.3.1 auf 6.11.1. Arbeite jetzt viel besser !! – SandaleRaclette
@robertklep - Bitte schreiben Sie eine Antwort, damit diese Frage geschlossen werden kann. – jfriend00