簡體   English   中英

socket.io-client對象不是函數

[英]socket.io-client object is not a function

我之前在這里打開了一個問題( 兩個node.js應用程序之間的Socket.io觸發事件? ),這有很多幫助,但我很困惑。

我一直在獲取對象不是我的客戶端腳本上的函數。

一點設置,我有一個前端站點,提供快速localhost:9200然后我有一個后端應用localhost:3100也提供快遞,我試圖從localhost:9200發出事件localhost:9200到socket.io server localhost:3100

網站localhost的客戶端腳本:9200

// I have tried many different ways
var socket = io('http://localhost:3100');
var socket = io('http://localhost');
var socket = io();

編輯

問題出在上面當然,因為在上面的情況下由於某種原因io是一個對象,當它應該是一個函數時,我遇到了一個老帖子,提到使用var socket = io.connect('http://localhost:3100'); connect和工作,我雖然它被折舊或其他什么,我不知道為什么文檔沒有提到這個,但它解決了我的問題。

對象的所有結果都不是函數。 我像這樣包含客戶端腳本

// tried some different ways
<script src="http://localhost:3100/socket.io/socket.io.js"></script>
<script src="socket.io/socket.io.js"></script> // this is a 404

我已經在服務器上安裝了https://github.com/automattic/socket.io-client並在前端網站:9200我已經設置好了。

// tried a couple ways to connect
var socket = require('socket.io-client')('http://localhost:3100');
var socket = require('socket.io-client')('http://localhost');
  socket.on('connect', function(){});
  socket.on('event', function(data){});
  socket.on('disconnect', function(){});

我很困惑如何正確配置這個,以便我可以讓我的網站向我的服務器發出套接字事件,反之亦然?

好吧,我想通了,這很荒謬,但在客戶端javascript我需要添加var socket = io.connect('http://localhost:3100'); io.connect使它工作與var socket = io('http://localhost:3100');

也許我錯過了,但文檔並沒有說使用io.connect https://github.com/automattic/socket.io-client無論它是什么工作,我很高興,任何關於為什么文檔沒有提到這個的想法會很好。

區別在於io.connect是1.0之前的語法。 他們出於任何原因改變了它。 這些是我在socket.io中期待的一些有趣的驚喜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM