[英]Websocket chat error in node.js socket.io
歡迎大家! 我已經與websocket進行了聊天,最重要的是它包含php,為此,我以另一種方式安裝了該websocket(服務器端)。
問題如下,當我運行服務器時,我從localhost / path打開頁面。瀏覽器中有錯誤,
“變量套接字= io();”中的“未捕獲的ReferenceError:io未定義” 從index.php,chat1.rar文件
服務器端似乎可以正常工作, 節點chat.js
我已經看了一個星期了如何解決它,
我在下面提到的代碼。
chat.js(服務器端)
var express = require( 'express' );
var http = require('http');
var socket = require('socket.io');
var bodyParser = require('body-parser')
var PORT = process.env.PORT || 8080;
var fs= require('fs');
var app = express();
var server = http.createServer( app );
var io = socket.listen( server );
io.on('connection',function(socket){
var channel = 'channel-a';
socket.join(channel);
socket.on('message',function(msj){
io.sockets.in(channel).emit('message',msj,socket.id);
});
socket.on('disconnect',function(){
console.log("Desconectado : %s",socket.id);
});
});
server.listen( 1334, function() {
console.log('lisning to port 1334');
});
和index.php(客戶端)
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
</head>
<body>
<div class="container">
<script type="text/javascript">
var socket = io.connect( 'http://localhost:1334' );
var socket = io();
$(function(){
$("form").submit(function(){
var mensaje = $("#msg").val();
if(mensaje=='') return false;
if(mensaje==' ') return false;
socket.emit('message',mensaje);
$("#msg").val('').focus();
return false;
});
});
socket.on('message',function(msg,id){
//output.innerHTML += '<p><strong>' + id + ': </strong>' + msg + '</p>';
$('#message').append($('<p><strong>' + id + ': </strong>' + msg + '</p>'));
//$('#message').append($('<div class="msg new-chat-message">').text(id+': '+msg));
//$('#message').append($('<div class="msg new-chat-message">').html('<span class="member-name">' + id + '</span>: ' + msg));
$('.chat-window').scrollTop($('#message').height());
//$("#message").append($('<li>').text(id+' : ' +msg));
});
socket.on('change channel',function(channel){
$("#message").html('').append($('<li>').text('system : Bienvenido al Canal '+channel+' !'));
});
</script>
<div class="col-md-12">
<div class="chat-window">
<div id="message"></div>
</div>
<div id="controls">
<form action="">
<select name="channel" id="channel">
<option value="channel-a">Channel A</option>
</select>
<div class="col-md-12">
<div class="input-group enter-chat-message">
<input type="text" id="msg" class="form-control" placeholder="Chat Message...">
<input class="input-group-addon submit-chat-message" type="submit" id="btn" value="Enviar">
</div>
</div>
</div></div>
</form>
</div></div></div></div>
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script src="js/bootstrap.js"></script>
<script src="node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js"></script>
</body>
</html>
屏幕截圖: http : //prntscr.com/ie030c
任何幫助表示贊賞! 謝謝
更改此:
<script src="node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js">
至:
<script src="/socket.io/socket.io.js">
看看會發生什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.